Hi everyone, I would like to implement a 'preemptible' mutex with the WriteLock example in the recipe. My method is like this.
1. Acquire the WriteLock and get the resources 2. Set a watch on the lock's root node with getChildren() repeatedly, using a separate ZooKeeper client 3. If only one child (self) is found, sleep 4. The callback function only wakes up the main thread 5. If the watch is triggered and > 1 children are found, release the resources and unlock the WriteLock In my design, I will execute the jar multiple times. Each time a new one is started, the old one should be forced to release the mutex. It works. The first execution does stop. However, the second process seems to lose its watch on the first one, because the callback function I passed to the WriteLock object is never evoked. The callback function is used to synchronize the locking request and is thus very important. Can anyone see any flaws in my design, or provide a different way that works? Thanks~ Best regards, mdzfirst
