Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
ManifoldCF 1.7.2
-
None
Description
The LockGate logic for flushing a LockGate is as follows:
synchronized (lockObject) { if (lockObject.leaveReadLock()) { if (lockPool != null) lockPool.releaseObject(lockKey, this); } }
Unfortunately, this has the side effect of causing the nicely ordered thread queue to be destroyed on the first time a lock is exited. That kills ordering and makes LockGate essentially do nothing of value.