cross-process timeoutable semaphores