kemchenj
9/13/2017 - 5:11 PM

Wait+Convenient

Wait 操作可以通过 @autoclosure 来简化语法

import Foundation

let condition = NSCondition()

var done = false

DispatchQueue.main.async {
    (0...100000000).forEach { print($0) }

    condition.lock()
    done = true
    condition.unlock()
}

condition.lock
condition.wait(until: done)
condition.unlock

print("Done")
import Foundation

extension NSCondition {
    
    func wait(until condition: @autoclosure () -> Bool) {
        while !condition() {
            wait()
        }
    }
}