Clover coverage report -
Coverage timestamp: Thu Jul 5 2007 20:02:32 EDT
file stats: LOC: 35   Methods: 1
NCLOC: 10   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
NonBlockingWriterLock.java 100% 100% 100% 100%
coverage
 1    /*
 2    * JBoss, the OpenSource J2EE webOS
 3    *
 4    * Distributable under LGPL license.
 5    * See terms of license at gnu.org.
 6    */
 7   
 8    package org.jboss.cache.lock;
 9   
 10    /**
 11    * NonBlockingWriterLock is a read/write lock (with upgrade) that has
 12    * non-blocking write lock acquisition on existing read lock(s).
 13    * <p>Note that the write lock is exclusive among write locks, e.g.,
 14    * only one write lock can be granted at one time, but the write lock
 15    * is independent of the read locks. For example,
 16    * a read lock to be acquired will be blocked if there is existing write lock, but
 17    * will not be blocked if there are mutiple read locks already granted to other
 18    * owners. On the other hand, a write lock can be acquired as long as there
 19    * is no existing write lock, regardless how many read locks have been
 20    * granted.
 21    *
 22    * @author Ben Wang
 23    * @version $Id: NonBlockingWriterLock.java,v 1.3 2006/12/11 21:14:34 genman Exp $
 24    */
 25    public class NonBlockingWriterLock extends ReadWriteLockWithUpgrade
 26    {
 27   
 28    // Only need to overwrite this method so WL is not blocked on RL.
 29  820 protected synchronized boolean startWrite()
 30    {
 31  820 boolean allowWrite = (activeWriter_ == null);
 32  817 if (allowWrite) activeWriter_ = Thread.currentThread();
 33  820 return allowWrite;
 34    }
 35    }