Skip to content

Commit 7615c70

Browse files
ktosoDougGregor
authored andcommitted
[Concurrency] Fix priority implementation
1 parent 307959e commit 7615c70

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

stdlib/public/Concurrency/Task.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ extension Task {
4545
/* @instantaneous */
4646
public static func currentPriority() async -> Priority {
4747
let task = Builtin.getCurrentAsyncTask()
48-
return getPriority(task)
48+
let p = getPriority(task)
49+
if let priority = Priority(rawValue: p) {
50+
return priority
51+
} else {
52+
fatalError("Unknown priority: \(p)")
53+
}
4954
}
5055

5156
/// Task priority may inform decisions an `Executor` makes about how and when
@@ -417,7 +422,7 @@ extension Task {
417422
public func runTask(_ task: __owned Builtin.NativeObject)
418423

419424
@_silgen_name("swift_task_getPriority")
420-
public func getPriority(_ task: __owned Builtin.NativeObject) -> Task.Priority
425+
func getPriority(_ task: __owned Builtin.NativeObject) -> Int
421426

422427
public func runAsync(_ asyncFun: @escaping () async -> ()) {
423428
let childTask = Builtin.createAsyncTask(0, nil, asyncFun)

test/Concurrency/Runtime/async_task_priority_basic.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ extension DispatchQueue {
2525
func test_getPriority() {
2626
_ = DispatchQueue.main.async { () async in
2727
let p = await Task.currentPriority()
28-
// CHECK: priority: userInteractive
28+
// CHECK: priority: default
2929
print("priority: \(p)")
30-
assert(p == Task.Priority.userInteractive)
30+
assert(p == Task.Priority.default)
3131
exit(0)
3232
}
3333
}

0 commit comments

Comments
 (0)