On Sun, Aug 15, 2021 at 1:27 PM Marc Nieper-Wißkirchen <
xxxxxx@gmail.com> wrote:
If so, the requirement to report when a thread dies on an exception seems wrong; the thread may simply be giving up early for whatever reason.
What do you mean by the latter? SRFI 226 mimics SRFI 18 here, and I think it is the right behavior to report when a joined thread does not handle an exception. Can you give an example of what you mean and where the semantics as stated would be wrong?
If thread Foo terminates normally, the value of its thunk is stashed in the Foo object and returned as the value of thread-join!. But if thread Foo terminates on an uncaught exception, the exception is likewise stashed in the Foo object, and when joined by thread Bar, the exception is raised again in thread Bar.
Treating uncaught exceptions in this manner allows Bar to deal with the exception as it sees fit. When the primordial thread terminates on an exception, this does not apply, and having a report is reasonable.