semaphores should work