File tree Expand file tree Collapse file tree 6 files changed +499
-440
lines changed Expand file tree Collapse file tree 6 files changed +499
-440
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,13 @@ void swift_dumpTrackedAccesses();
72
72
73
73
#endif
74
74
75
+ // When building the concurrency library for back deployment, we rename these
76
+ // symbols unformly so they don't conflict with the real concurrency library.
77
+ #ifdef SWIFT_CONCURRENCY_BACK_DEPLOYMENT
78
+ # define swift_task_enterThreadLocalContext swift_task_enterThreadLocalContextBackDeploy
79
+ # define swift_task_exitThreadLocalContext swift_task_exitThreadLocalContextBackDeploy
80
+ #endif
81
+
75
82
// / Called when a task inits, resumes and returns control to caller synchronous
76
83
// / code to update any exclusivity specific state associated with the task.
77
84
// /
Original file line number Diff line number Diff line change @@ -42,5 +42,6 @@ set(swift_concurrency_install_component back-deployment)
42
42
set (swift_concurrency_options
43
43
BACK_DEPLOYMENT_LIBRARY 5.5
44
44
DARWIN_INSTALL_NAME_DIR "@rpath" )
45
+ set (swift_concurrency_extra_sources "../BackDeployConcurrency/Exclusivity.cpp" )
45
46
46
47
add_subdirectory (../Concurrency stdlib/public/BackDeployConcurrency )
Original file line number Diff line number Diff line change
1
+ // ===--- Exclusivity.cpp - Exclusivity tracking ---------------------------===//
2
+ //
3
+ // This source file is part of the Swift.org open source project
4
+ //
5
+ // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
6
+ // Licensed under Apache License v2.0 with Runtime Library Exception
7
+ //
8
+ // See https://swift.org/LICENSE.txt for license information
9
+ // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10
+ //
11
+ // ===----------------------------------------------------------------------===//
12
+ //
13
+ // This implements the runtime support for dynamically tracking exclusivity.
14
+ //
15
+ // ===----------------------------------------------------------------------===//
16
+ #include < cinttypes>
17
+
18
+ #include " swift/Runtime/Exclusivity.h"
19
+ #include " ../runtime/ExclusivityPrivate.h"
20
+ #include " ../runtime/SwiftTLSContext.h"
21
+
22
+ using namespace swift ;
23
+ using namespace swift ::runtime;
24
+
25
+ // Thread-local storage used by the back-deployed concurrency library.
26
+ namespace {
27
+
28
+ static thread_local SwiftTLSContext TLSContext;
29
+
30
+ } // anonymous namespace
31
+
32
+ SwiftTLSContext &SwiftTLSContext::get () { return TLSContext; }
33
+
34
+ // Bring in the concurrency-specific exclusivity code.
35
+ #include " ../runtime/ConcurrencyExclusivity.inc"
Original file line number Diff line number Diff line change 10
10
#
11
11
#===----------------------------------------------------------------------===#
12
12
13
- set (LLVM_OPTIONAL_SOURCES
14
- ${swift_concurrency_objc_sources} )
13
+ if (NOT swift_concurrency_extra_sources )
14
+ set (swift_concurrency_extra_sources )
15
+ endif ()
15
16
16
17
if (NOT swift_concurrency_install_component )
17
18
set (swift_concurrency_install_component stdlib )
@@ -78,7 +79,7 @@ add_swift_target_library(swift_Concurrency ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
78
79
AsyncThrowingStream.swift
79
80
AsyncStream.cpp
80
81
Deque.swift
81
- ${swift_concurrency_objc_sources }
82
+ ${swift_concurrency_extra_sources }
82
83
83
84
SWIFT_MODULE_DEPENDS_LINUX Glibc
84
85
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
You can’t perform that action at this time.
0 commit comments