The workers now receive messages from the CommThread using Pipes instead of Queues.
Also, waiting for the barrier to exit is done with a blocking receive