Commits


Gil authored and GitHub committed e462d04ddb0
Make Executors have deterministic shutdown (#5547) In particular: * All tasks are guaranteed to either run to completion or not run at all; * Executors can now be destroyed from the threads they own (if applicable); and * Many common concepts between the Executor implementations have been harmonized and shared. Note: * This change does not yet implement `Executor::Dispose` or clean up any of the higher level componentry to take advantage of these changes. * The executors implement shutdown by canceling any tasks that haven't started yet. This diverges from the plan (which called for a separate `UserCallbackExecutor` to handle this), but in the end it turns out to be simpler to just cancel everything and make cancel handle tasks-in-progress in a reasonable way. LMK if you have grave objections to this, in which case I can rework this. This is the foundation for addressing firebase/quickstart-unity#638.