mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Build][Runtime] Replace SWIFT_STDLIB_SINGLE_THREADED_RUNTIME.
SWIFT_STDLIB_SINGLE_THREADED_RUNTIME is too much of a blunt instrument here. It covers both the Concurrency runtime and the rest of the runtime, but we'd like to be able to have e.g. a single-threaded Concurrency runtime while the rest of the runtime is still thread safe (for instance). So: rename it to SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY and make it just control the Concurrency runtime, then add a SWIFT_STDLIB_THREADING_PACKAGE setting at the CMake/build-script level, which defines SWIFT_STDLIB_THREADING_xxx where xxx depends on the chosen threading package. This is especially useful on systems where there may be a choice of threading package that you could use. rdar://90776105
This commit is contained in:
@@ -350,7 +350,7 @@ static HeapObject *_swift_retain_(HeapObject *object) {
|
||||
}
|
||||
|
||||
HeapObject *swift::swift_retain(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
return swift_nonatomic_retain(object);
|
||||
#else
|
||||
CALL_IMPL(swift_retain, (object));
|
||||
@@ -377,7 +377,7 @@ static HeapObject *_swift_retain_n_(HeapObject *object, uint32_t n) {
|
||||
}
|
||||
|
||||
HeapObject *swift::swift_retain_n(HeapObject *object, uint32_t n) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
return swift_nonatomic_retain_n(object, n);
|
||||
#else
|
||||
CALL_IMPL(swift_retain_n, (object, n));
|
||||
@@ -403,7 +403,7 @@ static void _swift_release_(HeapObject *object) {
|
||||
}
|
||||
|
||||
void swift::swift_release(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
swift_nonatomic_release(object);
|
||||
#else
|
||||
CALL_IMPL(swift_release, (object));
|
||||
@@ -428,7 +428,7 @@ static void _swift_release_n_(HeapObject *object, uint32_t n) {
|
||||
}
|
||||
|
||||
void swift::swift_release_n(HeapObject *object, uint32_t n) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
swift_nonatomic_release_n(object, n);
|
||||
#else
|
||||
CALL_IMPL(swift_release_n, (object, n));
|
||||
@@ -460,7 +460,7 @@ size_t swift::swift_weakRetainCount(HeapObject *object) {
|
||||
}
|
||||
|
||||
HeapObject *swift::swift_unownedRetain(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
return static_cast<HeapObject *>(swift_nonatomic_unownedRetain(object));
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRetain);
|
||||
@@ -473,7 +473,7 @@ HeapObject *swift::swift_unownedRetain(HeapObject *object) {
|
||||
}
|
||||
|
||||
void swift::swift_unownedRelease(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
swift_nonatomic_unownedRelease(object);
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRelease);
|
||||
@@ -520,7 +520,7 @@ void swift::swift_nonatomic_unownedRelease(HeapObject *object) {
|
||||
}
|
||||
|
||||
HeapObject *swift::swift_unownedRetain_n(HeapObject *object, int n) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
return swift_nonatomic_unownedRetain_n(object, n);
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRetain_n);
|
||||
@@ -533,7 +533,7 @@ HeapObject *swift::swift_unownedRetain_n(HeapObject *object, int n) {
|
||||
}
|
||||
|
||||
void swift::swift_unownedRelease_n(HeapObject *object, int n) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
swift_nonatomic_unownedRelease_n(object, n);
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRelease_n);
|
||||
@@ -583,7 +583,7 @@ static HeapObject *_swift_tryRetain_(HeapObject *object) {
|
||||
if (!isValidPointerForNativeRetain(object))
|
||||
return nullptr;
|
||||
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
if (object->refCounts.tryIncrementNonAtomic()) return object;
|
||||
else return nullptr;
|
||||
#else
|
||||
@@ -612,7 +612,7 @@ void swift::swift_setDeallocating(HeapObject *object) {
|
||||
}
|
||||
|
||||
HeapObject *swift::swift_unownedRetainStrong(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
return swift_nonatomic_unownedRetainStrong(object);
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRetainStrong);
|
||||
@@ -640,7 +640,7 @@ HeapObject *swift::swift_nonatomic_unownedRetainStrong(HeapObject *object) {
|
||||
}
|
||||
|
||||
void swift::swift_unownedRetainStrongAndRelease(HeapObject *object) {
|
||||
#ifdef SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
|
||||
#ifdef SWIFT_STDLIB_THREADING_NONE
|
||||
swift_nonatomic_unownedRetainStrongAndRelease(object);
|
||||
#else
|
||||
SWIFT_RT_TRACK_INVOCATION(object, swift_unownedRetainStrongAndRelease);
|
||||
|
||||
Reference in New Issue
Block a user