Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        private bool ReEnter(LongObjectMap <LockResource> localLocks, long resourceId)
        {
            LockResource resource = localLocks.get(resourceId);

            if (resource != null)
            {
                resource.AcquireReference();
                return(true);
            }
            else
            {
                return(false);
            }
        }