Use pthread_cond_timedwait (doesn't appear to work)
Use alarm() to kill worker if manager is slow