Central Event Dispatch
Created on 2021-11-22T22:45:55-06:00
Events which may block in a synchronous environment are replaced.
Anything which might block is instead scheduled with the central scheduler which results in a claim ticket.
This ticket takes many forms depending on underlying system.
It may be possible to cancel a request using the claim ticket, stop a thread until it is done, schedule a coroutine on completion, schedule a callback, or entrust a functor.
Claim tickets may be in the form of a Future or Promise which holds nothing until the dispatcher receives the value, which places it in the future.
Futures may be further integrated with either coroutines or functors which place themselves in the scheduler until the promise is fulfilled.