@@ -44,7 +44,8 @@ extension Task {
4444 /// This function returns instantly and will never suspend.
4545 /* @instantaneous */
4646 public static func currentPriority( ) async -> Priority {
47- fatalError ( " \( #function) not implemented yet. " )
47+ let task = Builtin . getCurrentAsyncTask ( )
48+ return getPriority ( task)
4849 }
4950
5051 /// Task priority may inform decisions an `Executor` makes about how and when
@@ -80,6 +81,7 @@ extension Task {
8081 /// similar to Darwin Dispatch's QoS; bearing in mind that priority is not as
8182 /// much of a thing on other platforms (i.e. server side Linux systems).
8283 public enum Priority : Int , Comparable {
84+ // Values must be same as defined by the internal `JobPriority`.
8385 case userInteractive = 0x21
8486 case userInitiated = 0x19
8587 case `default` = 0x15
@@ -414,6 +416,9 @@ extension Task {
414416@_silgen_name ( " swift_task_run " )
415417public func runTask( _ task: __owned Builtin. NativeObject )
416418
419+ @_silgen_name( " swift_task_getPriority" )
420+ public func getPriority( _ task: __owned Builtin. NativeObject ) -> Task . Priority
421+
417422public func runAsync( _ asyncFun: @escaping ( ) async -> ( ) ) {
418423 let childTask = Builtin . createAsyncTask ( 0 , nil , asyncFun)
419424 runTask ( childTask. 0 )
0 commit comments