snap.graph
Class Monitor

java.lang.Object
  |
  +--snap.graph.Monitor

public class Monitor
extends java.lang.Object

The Read Write Monitor Class

Author:
Varun Saini - vsaini@vt.edu, Umer Farooq - ufarooq@vt.edu, Nathan Conklin - nathan@conklinfamily.net, Chris North - north@cs.vt.edu

Constructor Summary
Monitor()
           
 
Method Summary
 void acquireRead()
          While some writer is writing reader waits else number of readers is incremented
 void acquireWrite()
          While some writer is writing or some reader is reading writer waits else writer starts writing
 void releaseRead()
          Number of readers is deccremented .
 void releaseWrite()
          Writer finishes writing and notify all the waiting threads
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Monitor

public Monitor()
Method Detail

acquireRead

public void acquireRead()
                 throws java.lang.InterruptedException
While some writer is writing reader waits else number of readers is incremented

java.lang.InterruptedException

releaseRead

public void releaseRead()
Number of readers is deccremented . If there are no more readers then one writer is notified


acquireWrite

public void acquireWrite()
                  throws java.lang.InterruptedException
While some writer is writing or some reader is reading writer waits else writer starts writing

java.lang.InterruptedException

releaseWrite

public void releaseWrite()
Writer finishes writing and notify all the waiting threads