diff --git a/products/llbuildSwift/BuildSystemBindings.swift b/products/llbuildSwift/BuildSystemBindings.swift index 2ee1854b..85c8fe24 100644 --- a/products/llbuildSwift/BuildSystemBindings.swift +++ b/products/llbuildSwift/BuildSystemBindings.swift @@ -519,7 +519,7 @@ private final class CommandWrapper { } /// Encapsulates a diagnostic as reported by the build system. -public struct Diagnostic { +public struct Diagnostic: Sendable { public typealias Kind = DiagnosticKind /// The kind of diagnostic. @@ -726,7 +726,7 @@ public struct ProcessHandle: Hashable { } } -public struct CommandMetrics { +public struct CommandMetrics: Hashable, Sendable { public let utime: UInt64 /// User time (in us) public let stime: UInt64 /// Sys time (in us) public let maxRSS: UInt64 /// Max RSS (in bytes) @@ -739,7 +739,7 @@ public struct CommandMetrics { } /// Result of a command execution. -public struct CommandExtendedResult { +public struct CommandExtendedResult: Sendable { public let result: CommandResult /// The result of a command execution public let exitStatus: Int32 /// The exit code public let pid: llbuild_pid_t? /// The process identifier (nil if failed to create a process) diff --git a/products/llbuildSwift/CoreBindings.swift b/products/llbuildSwift/CoreBindings.swift index cb59cd17..99f49d58 100644 --- a/products/llbuildSwift/CoreBindings.swift +++ b/products/llbuildSwift/CoreBindings.swift @@ -31,7 +31,7 @@ private func stringFromUInt8Array(_ data: [UInt8]) -> String { } /// Key objects are used to identify rules that can be built. -public struct Key: CustomStringConvertible, Equatable, Hashable { +public struct Key: CustomStringConvertible, Equatable, Hashable, Sendable { public let data: [UInt8] // MARK: CustomStringConvertible Conformance @@ -66,7 +66,7 @@ public struct Key: CustomStringConvertible, Equatable, Hashable { } /// Value objects are the result of building rules. -public struct Value: CustomStringConvertible, Equatable, Hashable { +public struct Value: CustomStringConvertible, Equatable, Hashable, Sendable { public let data: [UInt8] public var description: String { diff --git a/products/llbuildSwift/NinjaManifest.swift b/products/llbuildSwift/NinjaManifest.swift index f7bad3ca..01df324d 100644 --- a/products/llbuildSwift/NinjaManifest.swift +++ b/products/llbuildSwift/NinjaManifest.swift @@ -18,7 +18,7 @@ public enum NinjaError: Error { case invalidManifest(errors: String) } -public struct NinjaRule: Codable, Equatable { +public struct NinjaRule: Codable, Equatable, Sendable { public let name: String public let variables: [String: String] @@ -28,7 +28,7 @@ public struct NinjaRule: Codable, Equatable { } } -public struct NinjaBuildStatement: Codable, Equatable { +public struct NinjaBuildStatement: Codable, Equatable, Sendable { public let rule: NinjaRule public let command: String public let description: String @@ -61,7 +61,7 @@ public struct NinjaBuildStatement: Codable, Equatable { } } -public struct NinjaManifest: Codable, Equatable { +public struct NinjaManifest: Codable, Equatable, Sendable { public let rules: [String: NinjaRule] public let statements: [NinjaBuildStatement] public let defaultTargets: [String]