Skip to content

Commit e6882f2

Browse files
committed
[Concurrency] Fix Linux/Windows build issues.
Define `NOMINMAX` and `WIN32_LEAN_AND_MEAN` when including `<Windows.h>`. Don't export the interface from DLLs. Make sure we include `<new>` when using placement operator new. rdar://135380149
1 parent 837513d commit e6882f2

File tree

5 files changed

+7
-12
lines changed

5 files changed

+7
-12
lines changed

stdlib/public/Concurrency/CooperativeGlobalExecutor.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
#ifndef SWIFT_THREADING_NONE
3535
# include <thread>
3636
#endif
37+
#include <new>
38+
3739
#include <errno.h>
3840
#include "swift/Basic/PriorityQueue.h"
3941

stdlib/public/Concurrency/DispatchGlobalExecutor.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
#include "swift/Runtime/HeapObject.h"
3838
#include <dispatch/dispatch.h>
3939
#if defined(_WIN32)
40+
#define WIN32_LEAN_AND_MEAN
41+
#define NOMINMAX
4042
#include <Windows.h>
4143
#else
4244
#include <dlfcn.h>

stdlib/public/Concurrency/GlobalExecutor.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,14 +122,12 @@ uint64_t swift::swift_task_getJobTaskId(Job *job) {
122122
}
123123
}
124124

125-
SWIFT_EXPORT_FROM(swift_Concurrency)
126-
void *swift_job_alloc(SwiftJob *job, size_t size) {
125+
extern "C" void *swift_job_alloc(SwiftJob *job, size_t size) {
127126
auto task = cast<AsyncTask>(reinterpret_cast<Job *>(job));
128127
return _swift_task_alloc_specific(task, size);
129128
}
130129

131-
SWIFT_EXPORT_FROM(swift_Concurrency)
132-
void swift_job_dealloc(SwiftJob *job, void *ptr) {
130+
extern "C" void swift_job_dealloc(SwiftJob *job, void *ptr) {
133131
auto task = cast<AsyncTask>(reinterpret_cast<Job *>(job));
134132
return _swift_task_dealloc_specific(task, ptr);
135133
}
@@ -142,8 +140,7 @@ bool SerialExecutorRef::isMainExecutor() const {
142140
return swift_task_isMainExecutor(*this);
143141
}
144142

145-
SWIFT_EXPORT_FROM(swift_Concurrency)
146-
bool _swift_task_isMainExecutor_c(SwiftExecutorRef executor) {
143+
extern "C" bool _swift_task_isMainExecutor_c(SwiftExecutorRef executor) {
147144
SerialExecutorRef ref = *reinterpret_cast<SerialExecutorRef *>(&executor);
148145
return swift_task_isMainExecutor(ref);
149146
}

test/abi/macOS/arm64/concurrency.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,11 +343,8 @@ Added: _swift_task_invokeSwiftCheckIsolated
343343
Added: _swift_task_isMainExecutor
344344
Added: _swift_task_isMainExecutor_hook
345345

346-
Added: __swift_task_isMainExecutor_c
347346
Added: _swift_task_donateThreadToGlobalExecutorUntil
348347
Added: _swift_task_donateThreadToGlobalExecutorUntil_hook
349-
Added: _swift_job_alloc
350-
Added: _swift_job_dealloc
351348

352349
// Add property descriptors for static properties
353350
Added: _$sScM21sharedUnownedExecutorScevpZMV

test/abi/macOS/x86_64/concurrency.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,11 +344,8 @@ Added: _swift_task_invokeSwiftCheckIsolated
344344
Added: _swift_task_isMainExecutor
345345
Added: _swift_task_isMainExecutor_hook
346346

347-
Added: __swift_task_isMainExecutor_c
348347
Added: _swift_task_donateThreadToGlobalExecutorUntil
349348
Added: _swift_task_donateThreadToGlobalExecutorUntil_hook
350-
Added: _swift_job_alloc
351-
Added: _swift_job_dealloc
352349

353350
// Add property descriptors for static properties
354351
Added: _$sScM21sharedUnownedExecutorScevpZMV

0 commit comments

Comments
 (0)