A common pattern: looping indefinitely while taking items from a queue and processing each with a function, the loop ends when the queue produces a sentinel value. In this case, sentinels are called poison pills.
Two queues needed, one for jobs/tasks, one for collecting results