Need a semaphore to control worker thread count