Add rudimentary semaphore with acquire/release