One thing worth mentioning is the change to the threads.join() loop. The code now catches panics and makes an error message for them. I preserved the original behavior of propagating the panic up, so that the process will terminate on a panic in any thread, as per rust's default behavior when threads.join().unwrap() is used. Now though it is easy to change that behavior if we wish. Also, there is a path to return errors from child threads if we wish to, though for now they are expected to handle (log) their own errors, as before.
Most of this I think is pretty straight-forward.
One thing worth mentioning is the change to the threads.join() loop. The code now catches panics and makes an error message for them. I preserved the original behavior of propagating the panic up, so that the process will terminate on a panic in any thread, as per rust's default behavior when
threads.join().unwrap()
is used. Now though it is easy to change that behavior if we wish. Also, there is a path to return errors from child threads if we wish to, though for now they are expected to handle (log) their own errors, as before.For future PRs: