Solved 1b. Multi-threading the warehouse with Semaphores. Seems to work
fine.