The use case is that I have access control lists on my SAN that I dynamically update as a given volume is attached to or detached from a VM in a cluster.
Let's say multiple "attach" commands come in for VMs in the same cluster (I use one ACL per compute cluster). This leads to the storage framework calling grantAccess on my plug-in from different threads at the same time (which leads to the plug-in "losing" one of the volumes that is supposed to be in the ACL). If I use only one management server and protect grantAccess with a synchronized block, the problem goes away (the ACL is always correct). I was looking to extend this synchronization across grantAccess calls that are running in multiple management servers at the same time. On Tue, Jan 13, 2015 at 6:45 PM, Nitin Mehta <nitin.me...@citrix.com> wrote: > Yes, it should do it for you. Please check for the references of this > method and ensure there are other logic pieces using this. > It might help if you can you give some context of of your use case ? > > Thanks, > -Nitin > > On 13/01/15 4:12 PM, "Mike Tutkowski" <mike.tutkow...@solidfire.com> > wrote: > > >Hi, > > > >I have code in my plug-in that I'd like to make sure doesn't run in > >multiple threads at the same time. > > > >Of course if there were only the possibility of one management server ever > >running at a time, then I could just use synchronized. > > > >What is the recommended CloudStack approach? > > > >I see code like this in places (in a try block): > > > > GlobalLock lock = > >GlobalLock.getInternLock(templateIdPoolIdString); > > > > if (!lock.lock(5)) { > > > > s_logger.debug("Couldn't lock the db on the string " + > >templateIdPoolIdString); > > > > return null; > > > > } > > > >Then the finally block has this: > > > >lock.unlock(); > > > >lock.releaseRef(); > >Does this achieve what I'm looking for? > > > >Thanks! > > > >-- > >*Mike Tutkowski* > >*Senior CloudStack Developer, SolidFire Inc.* > >e: mike.tutkow...@solidfire.com > >o: 303.746.7302 > >Advancing the way the world uses the cloud > ><http://solidfire.com/solution/overview/?video=play>* * > > -- *Mike Tutkowski* *Senior CloudStack Developer, SolidFire Inc.* e: mike.tutkow...@solidfire.com o: 303.746.7302 Advancing the way the world uses the cloud <http://solidfire.com/solution/overview/?video=play>*™*