File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed
Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -6,9 +6,9 @@ import Dispatch
66actor DispatchQueueActor {
77 private let executor : DispatchQueueExecutor
88
9- /// - precondition: the queue is serial.
10- init ( queue: DispatchQueue ) {
11- self . executor = DispatchQueueExecutor ( queue: queue)
9+ /// - precondition: the queue is serial, or flags contains `.barrier` .
10+ init ( queue: DispatchQueue , flags : DispatchWorkItemFlags = [ ] ) {
11+ self . executor = DispatchQueueExecutor ( queue: queue, flags : flags )
1212 }
1313
1414 nonisolated var unownedExecutor : UnownedSerialExecutor {
@@ -22,13 +22,15 @@ actor DispatchQueueActor {
2222
2323private final class DispatchQueueExecutor : SerialExecutor {
2424 private let queue : DispatchQueue
25+ private let flags : DispatchWorkItemFlags
2526
26- init ( queue: DispatchQueue ) {
27+ init ( queue: DispatchQueue , flags : DispatchWorkItemFlags ) {
2728 self . queue = queue
29+ self . flags = flags
2830 }
2931
3032 func enqueue( _ job: UnownedJob ) {
31- queue. async {
33+ queue. async ( flags : flags ) {
3234 job. runSynchronously ( on: self . asUnownedSerialExecutor ( ) )
3335 }
3436 }
You can’t perform that action at this time.
0 commit comments