Slightly better semaphores