semaphores now use signals