Skip to content

Commit 4a41e50

Browse files
committed
Add platform executor module for FreeBSD
Effectively the same as Linux and OpenBSD. If Dispatch is disabled, this will fail because the dispatch executor isn't defined.
1 parent 7f32235 commit 4a41e50

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ add_library(swift_Concurrency
8181
PartialAsyncTask.swift
8282
PlatformExecutorDarwin.swift
8383
PlatformExecutorLinux.swift
84+
PlatformExecutorFreeBSD.swift
8485
PlatformExecutorOpenBSD.swift
8586
PlatformExecutorWindows.swift
8687
PriorityQueue.swift

stdlib/public/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ set(SWIFT_RUNTIME_CONCURRENCY_SWIFT_SOURCES
165165
PlatformExecutorLinux.swift
166166
PlatformExecutorWindows.swift
167167
PlatformExecutorOpenBSD.swift
168+
PlatformExecutorFreeBSD.swift
168169
)
169170

170171
set(SWIFT_RUNTIME_CONCURRENCY_NONEMBEDDED_C_SOURCES
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2020 - 2025 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+
#if !$Embedded && os(FreeBSD)
14+
15+
import Swift
16+
17+
// The default executors for now are Dispatch-based
18+
@available(SwiftStdlib 6.2, *)
19+
public struct PlatformExecutorFactory: ExecutorFactory {
20+
public static let mainExecutor: any MainExecutor = DispatchMainExecutor()
21+
public static let defaultExecutor: any TaskExecutor
22+
= DispatchGlobalTaskExecutor()
23+
}
24+
25+
#endif // os(FreeBSD)

0 commit comments

Comments
 (0)