Skip to content

Commit 8561356

Browse files
committed
Fix calling start() directly on a synchronous operation
1 parent 236e106 commit 8561356

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

Foundation/Operation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ open class Operation : NSObject {
347347
_state = .executing
348348
Operation.observeValue(forKeyPath: _NSOperationIsExecuting, ofObject: self)
349349

350-
_queue?._execute(self)
350+
_queue?._execute(self) ?? main()
351351
}
352352

353353
if __NSOperationState.executing == _state {

TestFoundation/TestOperationQueue.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class TestOperationQueue : XCTestCase {
1515
("test_OperationPriorities", test_OperationPriorities),
1616
("test_OperationCount", test_OperationCount),
1717
("test_AsyncOperation", test_AsyncOperation),
18-
("test_SyncOperation", test_SyncOperation),
18+
("test_SyncOperationWithoutAQueue", test_SyncOperationWithoutAQueue),
1919
("test_isExecutingWorks", test_isExecutingWorks),
2020
("test_MainQueueGetter", test_MainQueueGetter),
2121
("test_CancelOneOperation", test_CancelOneOperation),
@@ -106,7 +106,7 @@ class TestOperationQueue : XCTestCase {
106106
XCTAssertTrue(operation.isFinished)
107107
}
108108

109-
func test_SyncOperation() {
109+
func test_SyncOperationWithoutAQueue() {
110110
let operation = SyncOperation()
111111
XCTAssertFalse(operation.isExecuting)
112112
XCTAssertFalse(operation.isFinished)

0 commit comments

Comments
 (0)