Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let shouldStart = _lock.calculateLocked { () -> Bool in
- self._queue.enqueue(event)
- switch self._state {
- case .stopped:
- self._state = .running
- return true
- case .running:
- return false
- }
- }
- let (nextEvent, observer) = self._lock.calculateLocked { () -> (Event<E>?, O) in
- if self._queue.count > 0 {
- return (self._queue.dequeue(), self._observer)
- }
- else {
- self._state = .stopped
- return (nil, self._observer)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement