Skip to content

Commit 40ee44c

Browse files
authored
always @preconcurrency import Glibc/Musl/Android/Bionic/WASILibc (#3153)
### Motivation: The non-`Darwin` libcs don't have the correct concurrency annotations. But due to these Swift bugs, it's important that the _first_ importer uses `@preconcurrency`: - swiftlang/swift#79414 - swiftlang/swift#77866 ### Modifications: Much like the Foundation (& corelibs) PRs such as swiftlang/swift-foundation#1175 , use `@preconcurrency import` for the non-`Darwin` libcs. ### Result: Fewer bad warnings/errors in user code.
1 parent 6b00972 commit 40ee44c

30 files changed

+102
-102
lines changed

Sources/NIOConcurrencyHelpers/NIOLock.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import Darwin
1818
import ucrt
1919
import WinSDK
2020
#elseif canImport(Glibc)
21-
import Glibc
21+
@preconcurrency import Glibc
2222
#elseif canImport(Musl)
23-
import Musl
23+
@preconcurrency import Musl
2424
#elseif canImport(Bionic)
25-
import Bionic
25+
@preconcurrency import Bionic
2626
#elseif canImport(WASILibc)
27-
import WASILibc
27+
@preconcurrency import WASILibc
2828
#if canImport(wasi_pthread)
2929
import wasi_pthread
3030
#endif

Sources/NIOConcurrencyHelpers/atomics.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ private func sys_sched_yield() {
2727
}
2828
#else
2929
#if canImport(Glibc)
30-
import Glibc
30+
@preconcurrency import Glibc
3131
#elseif canImport(Musl)
32-
import Musl
32+
@preconcurrency import Musl
3333
#elseif canImport(Bionic)
34-
import Bionic
34+
@preconcurrency import Bionic
3535
#elseif canImport(WASILibc)
36-
import WASILibc
36+
@preconcurrency import WASILibc
3737
#else
3838
#error("The concurrency atomics module was unable to identify your C library.")
3939
#endif

Sources/NIOConcurrencyHelpers/lock.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import Darwin
1818
import ucrt
1919
import WinSDK
2020
#elseif canImport(Glibc)
21-
import Glibc
21+
@preconcurrency import Glibc
2222
#elseif canImport(Musl)
23-
import Musl
23+
@preconcurrency import Musl
2424
#elseif canImport(Bionic)
25-
import Bionic
25+
@preconcurrency import Bionic
2626
#elseif canImport(WASILibc)
27-
import WASILibc
27+
@preconcurrency import WASILibc
2828
#if canImport(wasi_pthread)
2929
import wasi_pthread
3030
#endif

Sources/NIOCore/BSDSocketAPI.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ import func WinSDK.WSAGetLastError
6565
internal typealias socklen_t = ucrt.size_t
6666
#elseif os(Linux) || os(Android)
6767
#if canImport(Glibc)
68-
import Glibc
68+
@preconcurrency import Glibc
6969
#elseif canImport(Musl)
70-
import Musl
70+
@preconcurrency import Musl
7171
#elseif canImport(Android)
72-
import Android
72+
@preconcurrency import Android
7373
#endif
7474
import CNIOLinux
7575

@@ -91,7 +91,7 @@ private let sysInet_ntop:
9191
inet_ntop
9292
private let sysInet_pton: @convention(c) (CInt, UnsafePointer<CChar>?, UnsafeMutableRawPointer?) -> CInt = inet_pton
9393
#elseif canImport(WASILibc)
94-
import WASILibc
94+
@preconcurrency import WASILibc
9595

9696
private let sysInet_ntop:
9797
@convention(c) (CInt, UnsafeRawPointer?, UnsafeMutablePointer<CChar>?, socklen_t) -> UnsafePointer<CChar>? =

Sources/NIOCore/ByteBuffer-core.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import ucrt
1717
#elseif canImport(Darwin)
1818
import Darwin
1919
#elseif canImport(Glibc)
20-
import Glibc
20+
@preconcurrency import Glibc
2121
#elseif canImport(Musl)
22-
import Musl
22+
@preconcurrency import Musl
2323
#elseif canImport(Bionic)
24-
import Bionic
24+
@preconcurrency import Bionic
2525
#elseif canImport(WASILibc)
26-
import WASILibc
26+
@preconcurrency import WASILibc
2727
#else
2828
#error("The Byte Buffer module was unable to identify your C library.")
2929
#endif

Sources/NIOCore/EventLoop.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import Dispatch
1919
#endif
2020

2121
#if canImport(WASILibc)
22-
import WASILibc
22+
@preconcurrency import WASILibc
2323
import CNIOWASI
2424
#endif
2525

Sources/NIOCore/FileHandle.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ import ucrt
1919
#elseif canImport(Darwin)
2020
import Darwin
2121
#elseif canImport(Glibc)
22-
import Glibc
22+
@preconcurrency import Glibc
2323
#elseif canImport(Musl)
24-
import Musl
24+
@preconcurrency import Musl
2525
#elseif canImport(Android)
26-
import Android
26+
@preconcurrency import Android
2727
#elseif canImport(WASILibc)
28-
import WASILibc
28+
@preconcurrency import WASILibc
2929
import CNIOWASI
3030
#else
3131
#error("The File Handle module was unable to identify your C library.")

Sources/NIOCore/FileRegion.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ import ucrt
1616
#elseif canImport(Darwin)
1717
import Darwin
1818
#elseif canImport(Glibc)
19-
import Glibc
19+
@preconcurrency import Glibc
2020
#elseif canImport(Musl)
21-
import Musl
21+
@preconcurrency import Musl
2222
#elseif canImport(Bionic)
23-
import Bionic
23+
@preconcurrency import Bionic
2424
#elseif canImport(WASILibc)
25-
import WASILibc
25+
@preconcurrency import WASILibc
2626
#else
2727
#error("The File Region module was unable to identify your C library.")
2828
#endif

Sources/NIOCore/GlobalSingletons.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ import Darwin
2020
import ucrt
2121
import WinSDK
2222
#elseif canImport(Glibc)
23-
import Glibc
23+
@preconcurrency import Glibc
2424
#elseif canImport(Musl)
25-
import Musl
25+
@preconcurrency import Musl
2626
#elseif canImport(Bionic)
27-
import Bionic
27+
@preconcurrency import Bionic
2828
#elseif canImport(WASILibc)
29-
import WASILibc
29+
@preconcurrency import WASILibc
3030
#else
3131
#error("Unsupported C library")
3232
#endif

Sources/NIOCore/IO.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ internal func MAKELANGID(_ p: WORD, _ s: WORD) -> DWORD {
2929
DWORD((s << 10) | p)
3030
}
3131
#elseif canImport(Glibc)
32-
import Glibc
32+
@preconcurrency import Glibc
3333
#elseif canImport(Musl)
34-
import Musl
34+
@preconcurrency import Musl
3535
#elseif canImport(Bionic)
36-
import Bionic
36+
@preconcurrency import Bionic
3737
#elseif canImport(WASILibc)
38-
import WASILibc
38+
@preconcurrency import WASILibc
3939
#elseif canImport(Darwin)
4040
import Darwin
4141
#else

Sources/NIOCore/Interfaces.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@
1313
//===----------------------------------------------------------------------===//
1414
#if os(Linux) || os(FreeBSD) || os(Android)
1515
#if canImport(Glibc)
16-
import Glibc
16+
@preconcurrency import Glibc
1717
#elseif canImport(Musl)
18-
import Musl
18+
@preconcurrency import Musl
1919
#elseif canImport(Bionic)
20-
import Bionic
20+
@preconcurrency import Bionic
2121
#endif
2222
import CNIOLinux
2323
#elseif canImport(Darwin)
2424
import Darwin
2525
#elseif canImport(WASILibc)
26-
import WASILibc
26+
@preconcurrency import WASILibc
2727
#elseif os(Windows)
2828
import let WinSDK.AF_INET
2929
import let WinSDK.AF_INET6

Sources/NIOCore/SocketAddresses.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ private typealias sa_family_t = WinSDK.ADDRESS_FAMILY
4545
import Darwin
4646
#elseif os(Linux) || os(FreeBSD) || os(Android)
4747
#if canImport(Glibc)
48-
import Glibc
48+
@preconcurrency import Glibc
4949
#elseif canImport(Musl)
50-
import Musl
50+
@preconcurrency import Musl
5151
#elseif canImport(Android)
52-
import Android
52+
@preconcurrency import Android
5353
#endif
5454
import CNIOLinux
5555
#elseif canImport(WASILibc)
56-
import WASILibc
56+
@preconcurrency import WASILibc
5757
#else
5858
#error("The Socket Addresses module was unable to identify your C library.")
5959
#endif

Sources/NIOCore/SocketOptionProvider.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
import Darwin
1616
#elseif os(Linux) || os(Android)
1717
#if canImport(Glibc)
18-
import Glibc
18+
@preconcurrency import Glibc
1919
#elseif canImport(Musl)
20-
import Musl
20+
@preconcurrency import Musl
2121
#elseif canImport(Bionic)
22-
import Bionic
22+
@preconcurrency import Bionic
2323
#endif
2424
import CNIOLinux
2525
#elseif os(Windows)
2626
import WinSDK
2727
#elseif canImport(WASILibc)
28-
import WASILibc
28+
@preconcurrency import WASILibc
2929
#else
3030
#error("The Socket Option provider module was unable to identify your C library.")
3131
#endif

Sources/NIOCore/SystemCallHelpers.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
#if canImport(Darwin)
2323
import Darwin.C
2424
#elseif canImport(Glibc)
25-
import Glibc
25+
@preconcurrency import Glibc
2626
#elseif canImport(Musl)
27-
import Musl
27+
@preconcurrency import Musl
2828
#elseif canImport(WASILibc)
29-
import WASILibc
29+
@preconcurrency import WASILibc
3030
#elseif os(Windows)
3131
import CNIOWindows
3232
#elseif canImport(Android)
33-
import Android
33+
@preconcurrency import Android
3434
#else
3535
#error("The system call helpers module was unable to identify your C library.")
3636
#endif

Sources/NIOCore/Utilities.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
#if os(Linux) || os(FreeBSD) || os(Android)
1515
import CNIOLinux
1616
#if canImport(Glibc)
17-
import Glibc
17+
@preconcurrency import Glibc
1818
#elseif canImport(Musl)
19-
import Musl
19+
@preconcurrency import Musl
2020
#elseif canImport(Android)
21-
import Android
21+
@preconcurrency import Android
2222
#endif
2323
#elseif os(Windows)
2424
import let WinSDK.RelationProcessorCore
@@ -39,7 +39,7 @@ import typealias WinSDK.DWORD
3939
#elseif canImport(Darwin)
4040
import Darwin
4141
#elseif canImport(WASILibc)
42-
import WASILibc
42+
@preconcurrency import WASILibc
4343
#else
4444
#error("The Core utilities module was unable to identify your C library.")
4545
#endif

Sources/NIOEmbedded/Embedded.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ import Dispatch
2525
#if canImport(Darwin)
2626
import Darwin
2727
#elseif canImport(Glibc)
28-
import Glibc
28+
@preconcurrency import Glibc
2929
#elseif canImport(Musl)
30-
import Musl
30+
@preconcurrency import Musl
3131
#elseif canImport(Android)
32-
import Android
32+
@preconcurrency import Android
3333
#elseif canImport(WASILibc)
34-
import WASILibc
34+
@preconcurrency import WASILibc
3535
#else
3636
#error("Unknown C library.")
3737
#endif

Sources/NIOFileSystem/FileInfo.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import SystemPackage
1717
#if canImport(Darwin)
1818
import Darwin
1919
#elseif canImport(Glibc)
20-
import Glibc
20+
@preconcurrency import Glibc
2121
import CNIOLinux
2222
#elseif canImport(Musl)
23-
import Musl
23+
@preconcurrency import Musl
2424
import CNIOLinux
2525
#elseif canImport(Android)
26-
import Android
26+
@preconcurrency import Android
2727
import CNIOLinux
2828
#endif
2929

Sources/NIOFileSystem/FileSystem.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ import SystemPackage
2020
#if canImport(Darwin)
2121
import Darwin
2222
#elseif canImport(Glibc)
23-
import Glibc
23+
@preconcurrency import Glibc
2424
#elseif canImport(Musl)
25-
import Musl
25+
@preconcurrency import Musl
2626
#elseif canImport(Bionic)
27-
import Bionic
27+
@preconcurrency import Bionic
2828
#endif
2929

3030
/// A file system which interacts with the local system. The file system uses a thread pool to

Sources/NIOFileSystem/FileSystemError+Syscall.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import SystemPackage
1717
#if canImport(Darwin)
1818
import Darwin
1919
#elseif canImport(Glibc)
20-
import Glibc
20+
@preconcurrency import Glibc
2121
#elseif canImport(Musl)
22-
import Musl
22+
@preconcurrency import Musl
2323
#endif
2424

2525
extension FileSystemError {

Sources/NIOFileSystem/FileType.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ import SystemPackage
1717
#if canImport(Darwin)
1818
import Darwin
1919
#elseif canImport(Glibc)
20-
import Glibc
20+
@preconcurrency import Glibc
2121
#elseif canImport(Musl)
22-
import Musl
22+
@preconcurrency import Musl
2323
#elseif canImport(Android)
24-
import Android
24+
@preconcurrency import Android
2525
#endif
2626

2727
/// The type of a file system object.

Sources/NIOFileSystem/Internal/System Calls/CInterop.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import SystemPackage
1818
import Darwin
1919
import CNIODarwin
2020
#elseif canImport(Glibc)
21-
import Glibc
21+
@preconcurrency import Glibc
2222
import CNIOLinux
2323
#elseif canImport(Musl)
24-
import Musl
24+
@preconcurrency import Musl
2525
import CNIOLinux
2626
#elseif canImport(Android)
27-
import Android
27+
@preconcurrency import Android
2828
import CNIOLinux
2929
#endif
3030

Sources/NIOFileSystem/Internal/System Calls/Errno.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ import SystemPackage
1717
#if canImport(Darwin)
1818
import Darwin
1919
#elseif canImport(Glibc)
20-
import Glibc
20+
@preconcurrency import Glibc
2121
#elseif canImport(Musl)
22-
import Musl
22+
@preconcurrency import Musl
2323
#elseif canImport(Android)
24-
import Android
24+
@preconcurrency import Android
2525
#endif
2626

2727
extension Errno {

0 commit comments

Comments
 (0)