Make hash_pop signal the work scheduler each time it waits on the conditional that it should look for more work.
Never wait indefinitely for a pthread conditional in the hash_pop loop in case the work scheduler misses the last wakeup.