Here’s a portion of the JavaDoc for the class: There are two modes for determining the max leases for the semaphore. In the first mode the max leases is a convention maintained by the users of a given path. In the second mode a SharedCountReader is used as the method for semaphores of a given path to determine the max leases.
If a SharedCountReader is not used, no internal checks are done to prevent Process A acting as if there are 10 leases and Process B acting as if there are 20. Therefore, make sure that all instances in all processes use the same numberOfLeases value. -JZ From: Sznajder ForMailingList Sznajder ForMailingList Reply: [email protected] [email protected] Date: January 9, 2014 at 9:51:36 AM To: [email protected] [email protected] Subject: Usage of semaphore Hi I need to allow the access to a shared resource only MAX_CON times. It sounds natural to use the semaphore for that. However, something is not clear to me in the API. What is the difference between the two constructors: public InterProcessSemaphoreV2(CuratorFramework client, String path, int maxLeases) public InterProcessSemaphoreV2(CuratorFramework client, String path, SharedCountReader count) And especially, with the second constructor signature, how do I define the maxLeases value? How can I limit the access to be only MAX_CONN? Many thanks Benjamin
