Index: MutexTest.java =================================================================== RCS file: /cvs/openide/test/unit/src/org/openide/util/MutexTest.java,v --- MutexTest.java 27 Feb 2003 23:41:26 -0000 1.7 +++ MutexTest.java 15 Oct 2003 12:43:23 -0000 @@ -540,4 +540,52 @@ } } // end of State + + public void testReaderWriterWaitReaderGo() { + + class Worker implements Runnable { + + private int state; + + public void run() { + switch( state ) { + case 0: + synchronized ( this ) { + state = 1; + p.enterReadAccess(); + RequestProcessor.getDefault().post( this ); + try { + wait(); + } + catch( InterruptedException e ) { + e.printStackTrace(); + } + p.exitReadAccess(); + } + break; + case 1: + state = 2; + RequestProcessor.getDefault().postRequest( this, 100 ); + p.enterWriteAccess(); + break; + case 2: + synchronized ( this ) { + p.enterReadAccess(); + state = 3; + p.exitReadAccess(); + notifyAll(); + } + break; + } + } + } + + Worker w = new Worker(); + w.run(); + assertEquals( "Second reader has finished", 3, w.state ); + + } + + + }