PASemaphore => JASemaphore, and release is now implemented as an event