commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ozeigerm...@apache.org
Subject cvs commit: jakarta-commons/transaction/src/java/org/apache/commons/transaction/locking GenericLockManager.java
Date Sun, 19 Dec 2004 10:54:52 GMT
ozeigermann    2004/12/19 02:54:52

  Modified:    transaction/src/java/org/apache/commons/transaction/locking
                        GenericLockManager.java
  Log:
  Minor
  
  Revision  Changes    Path
  1.8       +19 -10    jakarta-commons/transaction/src/java/org/apache/commons/transaction/locking/GenericLockManager.java
  
  Index: GenericLockManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/transaction/src/java/org/apache/commons/transaction/locking/GenericLockManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- GenericLockManager.java	19 Dec 2004 10:10:13 -0000	1.7
  +++ GenericLockManager.java	19 Dec 2004 10:54:52 -0000	1.8
  @@ -100,18 +100,24 @@
           this(maxLockLevel, logger, DEFAULT_TIMEOUT);
       }
   
  -
  +    /**
  +     * Sets a global timeout for an owner. This is especially usefull, when the owner is
a 
  +     * transaction. After a global timeout occurs all of the owner's lock will be released
and 
  +     * the owner will not be allowed to access any
  +     * locks before before calling {@link #releaseAll(Object)}.
  +     * 
  +     * @param ownerId
  +     *            a unique id identifying the entity that wants to acquire this
  +     *            lock
  +     * @param timeoutMSecs
  +     *            specifies the global timeout in milliseconds
  +     */
       public void setGlobalTimeout(Object ownerId, long timeoutMSecs) {
           long now = System.currentTimeMillis();
           long timeout = now + timeoutMSecs;
           globalTimeouts.put(ownerId, new Long(timeout));
       }
       
  -    public long getGlobalTimeoutTime(Object ownerId) {
  -        Long timeout = (Long) globalTimeouts.get(ownerId);
  -        return timeout.longValue();
  -    }
  -    
       /**
        * @see LockManager#tryLock(Object, Object, int, boolean)
        */
  @@ -160,6 +166,9 @@
           //    is important as the other thread might be the one to discover the deadlock
           
           // (b) register us as a waiter before actually trying, so other threads take us
into account
  +        // XXX: This may however mean both deadlocking parts detect the deadlock simultaneously,
  +        // and both will be rolled back. The (worse) alternative, however, is that we add
us
  +        // as a waiter ofter deadlock check which may mean we do not detect the deadlock
at all
           addWaiter(lock, ownerId);
   
           try {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message