Skip to content

Commit fb0ec64

Browse files
authored
Merge pull request #85835 from MaxDesiatov/embedded-wasm-mutex
2 parents b4dedb2 + d33191e commit fb0ec64

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

stdlib/public/Synchronization/CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,24 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
192192
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
193193
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
194194
endif()
195+
196+
set(SWIFT_SYNCHRONIZATION_EMBEDDED_SOURCES)
197+
198+
if("${arch}" MATCHES "wasm32")
199+
list(APPEND SWIFT_SYNCHRONIZATION_EMBEDDED_SOURCES ${SWIFT_SYNCHRONIZATION_SOURCES})
200+
list(APPEND SWIFT_SYNCHRONIZATION_EMBEDDED_SOURCES ${SWIFT_SYNCHRONIZATION_WASM_SOURCES})
201+
else()
202+
list(APPEND SWIFT_SYNCHRONIZATION_EMBEDDED_SOURCES ${SWIFT_SYNCHRONIZATION_ATOMIC_SOURCES})
203+
endif()
204+
195205
add_swift_target_library_single(
196206
embedded-synchronization-${mod}
197207
swiftSynchronization
198208
ONLY_SWIFTMODULE
199209
IS_FRAGILE
200210

201-
${SWIFT_SYNCHRONIZATION_ATOMIC_SOURCES}
211+
${SWIFT_SYNCHRONIZATION_EMBEDDED_SOURCES}
212+
202213
GYB_SOURCES
203214
${SWIFT_SYNCHRONIZATION_GYB_SOURCES}
204215

test/embedded/wasm/mutex.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// RUN: %target-run-simple-swift(-enable-experimental-feature Embedded -parse-as-library -wmo) | %FileCheck %s
2+
3+
// REQUIRES: executable_test
4+
// REQUIRES: OS=wasip1
5+
// REQUIRES: swift_feature_Embedded
6+
7+
import Synchronization
8+
@main struct Main {
9+
static func main() {
10+
let m = Mutex(42)
11+
12+
m.withLock {
13+
print("Hello \($0)") // CHECK: Hello 42
14+
$0 = 37
15+
}
16+
17+
m.withLock {
18+
print("Hello \($0)") // CHECK: Hello 37
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)