Using queue instead of join to wait for producers
Using queue instead of join to wait for producers

This has the advantage that an exception in one thread is raised immediately,
and we can immediately start our cleanup routine, including killing the
processes created by the other threads (which will cause the threads in turn to
finish with exceptions as well, but these subsequent exceptions will be
swallowed).

texttheater/produce,texttheater/produce