< prev index next >

src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java

Print this page




  47  * @since 1.6
  48  * @author Doug Lea
  49  */
  50 public abstract class AbstractOwnableSynchronizer
  51     implements java.io.Serializable {
  52 
  53     /** Use serial ID even though all fields transient. */
  54     private static final long serialVersionUID = 3737899427754241961L;
  55 
  56     /**
  57      * Empty constructor for use by subclasses.
  58      */
  59     protected AbstractOwnableSynchronizer() { }
  60 
  61     /**
  62      * The current owner of exclusive mode synchronization.
  63      */
  64     private transient Thread exclusiveOwnerThread;
  65 
  66     /**





  67      * Sets the thread that currently owns exclusive access.
  68      * A {@code null} argument indicates that no thread owns access.
  69      * This method does not otherwise impose any synchronization or
  70      * {@code volatile} field accesses.
  71      * @param thread the owner thread
  72      */
  73     protected final void setExclusiveOwnerThread(Thread thread) {



  74         exclusiveOwnerThread = thread;
  75     }
  76 
  77     /**
  78      * Returns the thread last set by {@code setExclusiveOwnerThread},
  79      * or {@code null} if never set.  This method does not otherwise
  80      * impose any synchronization or {@code volatile} field accesses.
  81      * @return the owner thread
  82      */
  83     protected final Thread getExclusiveOwnerThread() {
  84         return exclusiveOwnerThread;
  85     }
  86 }


  47  * @since 1.6
  48  * @author Doug Lea
  49  */
  50 public abstract class AbstractOwnableSynchronizer
  51     implements java.io.Serializable {
  52 
  53     /** Use serial ID even though all fields transient. */
  54     private static final long serialVersionUID = 3737899427754241961L;
  55 
  56     /**
  57      * Empty constructor for use by subclasses.
  58      */
  59     protected AbstractOwnableSynchronizer() { }
  60 
  61     /**
  62      * The current owner of exclusive mode synchronization.
  63      */
  64     private transient Thread exclusiveOwnerThread;
  65 
  66     /**
  67      * The current or last owner of exclusive mode synchronization.
  68      */
  69     private transient Thread lastExclusiveOwnerThread;
  70 
  71     /**
  72      * Sets the thread that currently owns exclusive access.
  73      * A {@code null} argument indicates that no thread owns access.
  74      * This method does not otherwise impose any synchronization or
  75      * {@code volatile} field accesses.
  76      * @param thread the owner thread
  77      */
  78     protected final void setExclusiveOwnerThread(Thread thread) {
  79         if (thread != null) {
  80                 lastExclusiveOwnerThread = thread;
  81         }
  82         exclusiveOwnerThread = thread;
  83     }
  84 
  85     /**
  86      * Returns the thread last set by {@code setExclusiveOwnerThread},
  87      * or {@code null} if never set.  This method does not otherwise
  88      * impose any synchronization or {@code volatile} field accesses.
  89      * @return the owner thread
  90      */
  91     protected final Thread getExclusiveOwnerThread() {
  92         return exclusiveOwnerThread;
  93     }
  94 }
< prev index next >