duemunk/Async

Should I update my MAC OS?

tomatodady opened this issue · 2 comments

My environment is OS 10.9.4 and Xcode 6 beta 5. I have tried to use Async in my iOS app, but it failed in the simulator (iOS 8).
I didn't modify anything, just run the two projects "AsyncExample iOS" and "AsyncExample iOSTests".

"AsyncExample iOS" printed these:
A: This is run on the Main (expected Background)
B: This is run on the Main (expected Main), after the previous block

"AsyncExample iOSTests" just succeed for the functions "testAsyncMain", "testAfterMain" and "testCancel". Other functions failed because qos_class_self() returned 0, which wasn't equal to any qos class.

Is MAC OS version the reason?

You can use Async.legacy. The main Async requires 10.10 or iOS8.

To expand further the qos classes were only introduced at this year's WWDC of iOS8 and 10.10 Yosemite. Also the main Async library makes heavy use of other newly introduced API calls. Async.legacy is a drop in replacement and when you do target 10.10 you can pull it out and drop the main Async back in to take advantage of the qos classes. I blogged about them here: http://blog.human-friendly.com/async-dot-legacy-swift-wrapper-for-grand-central-dispatch-ios7-and-os-x-10-dot-9-compatible

Also the simulator doesn't handle threads correctly.