-
Committer:
James E. Blair
-
Date:
2013-08-14 21:50:14 UTC
-
Revision ID:
git-v1:2cb540bf51d6cc6ead7201f7dd28deb9359901ae
Use more fine-grained synchronization in GearmanProxy
This undoes some of the previous change. In particular, calling
something that could affect a NodeAvailabilityMonitor's lock
(eg in canTake or the init methods in createExecutorWorkersOnNode)
can deadlock on trying to obtain the Queue lock while holding the
GearmanProxy lock.
Instead, lock on just the handle lists where necessary, and try
to do serious work outside of that lock.
Change-Id: I4c1ed6c7a4f5586c1034651a649bbbd420eacdd7