mukul-rathi / bolt

Bolt is a language with in-built data-race freedom!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How are errors/panics/exceptions in finish-async blocks handled?

dumblob opened this issue · comments

Structured concurrency is finding its way into popular languages and libraries. It's though not one identical concept, it's actually several variants and the world is now searching and evaluating which ones are better and which ones worse.

One of the major differences between structured concurrency implementations is how errors in spawned threads are handled and how they are (if at all) passed somewhere else.

Could you shed some light how finish-async blocks behave in case of an unrecoverable error in one spawned thread appears? Feel free to put emphasis on problems described in https://github.com/vorner/vorner.github.io/blob/master/_posts/2018-07-22-dont_panic.md .


Just for the record an example of another major difference between implementations is e.g. support for real os-level threads (i.e. leveraging the power of more than one CPU core).

Thank you for your interesting question, the truth is that I haven’t really thought too much about error-handling yet. This language was written for my undergraduate dissertation so as a result is likely still missing core language features like error handling.