func testMultipleThreadsWaitUntilFinished()

in OSSSwiftDemo/OSSSwiftDemoTests/OSSTaskTests.swift [787:811]


    func testMultipleThreadsWaitUntilFinished() {
        let task = OSSTask<AnyObject>.init(delay: 500).continue({ (t) -> Any? in
            return "foo"
        })
        
        let queue = DispatchQueue.init(label: "com.bolts.tests.wait")
        let group = DispatchGroup.init()
        
        let expectation = self.expectation(description: "testMultipleThreadsWaitUntilFinished")
        DispatchQueue.global().async {
            queue.async(group: group, execute: DispatchWorkItem.init(block: {
                task.waitUntilFinished()
            }))
            queue.async(group: group, execute: DispatchWorkItem.init(block: {
                task.waitUntilFinished()
            }))
            task.waitUntilFinished()
            group.wait(timeout: .distantFuture)
            
            expectation.fulfill()
        }
        
        
        self.waitForExpectations(timeout: 10, handler: nil)
    }