> > I think F#'s cancellation approach is also worth mentioning in the > discussion of alternatives as it has implicit but token-based automatically > propagating cancellation. >
If you have any good links to reference materials on F#'s cancellation architecture, feel free to include them for future reference. I was unable to find anything that clearly explained how implicit cancellation tokens are discovered by child tasks, for instance. I find implicit cancellation to be somewhat sketchy. For async functions, it would mean that any await expression could potentially throw a CancelError: async function f() { let a = await 1; // This could throw? What? } And there are certainly going to be scenarios where you *don't* want to cancel a subtask. It seems to me that cancellation semantics are best left to the async operation itself, rather than assuming "crash-and-burn".
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss