Avoid silencing exceptions thrown by worker threads
In order for exceptions to be re-thrown in the main thread, each task's result needs to be checked by a .get() call in the main thread.
In order for exceptions to be re-thrown in the main thread, each task's result needs to be checked by a .get() call in the main thread.