public override void AcquireShared(LockTracer tracer, ResourceType resourceType, params long[] resourceIds) { _stateHolder.incrementActiveClients(this); try { MutableLongObjectMap <LockResource> localLocks = LocalShared(resourceType); foreach (long resourceId in resourceIds) { LockResource resource = localLocks.get(resourceId); if (resource != null) { resource.AcquireReference(); } else { resource = new LockResource(resourceType, resourceId); if (_manager.getReadLock(tracer, resource, _lockTransaction)) { localLocks.put(resourceId, resource); } else { throw new LockClientStoppedException(this); } } } } finally { _stateHolder.decrementActiveClients(); } }
public override bool TrySharedLock(ResourceType resourceType, long resourceId) { _stateHolder.incrementActiveClients(this); try { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.eclipse.collections.api.map.primitive.MutableLongObjectMap<LockResource> localLocks = localShared(resourceType); MutableLongObjectMap <LockResource> localLocks = LocalShared(resourceType); LockResource resource = localLocks.get(resourceId); if (resource != null) { resource.AcquireReference(); return(true); } else { resource = new LockResource(resourceType, resourceId); if (_manager.tryReadLock(resource, _lockTransaction)) { localLocks.put(resourceId, resource); return(true); } else { return(false); } } } finally { _stateHolder.decrementActiveClients(); } }
private bool ReEnter(LongObjectMap <LockResource> localLocks, long resourceId) { LockResource resource = localLocks.get(resourceId); if (resource != null) { resource.AcquireReference(); return(true); } else { return(false); } }