func trySet()

in Sources/BoltsSwift/Task.swift [238:266]


    func trySet(state: TaskState<TResult>) -> Bool {
        var stateChanged = false

        var continuations: [Continuation]?
        var completedCondition: NSCondition?
        synchronizationQueue.sync(flags: .barrier, execute: {
            switch self._state {
            case .pending:
                stateChanged = true
                self._state = state
                continuations = self._continuations
                completedCondition = self._completedCondition
                self._continuations.removeAll()
            default:
                break
            }
        })
        if stateChanged {
            completedCondition?.lock()
            completedCondition?.broadcast()
            completedCondition?.unlock()

            for continuation in continuations! {
                continuation()
            }
        }

        return stateChanged
    }