Index: MemoryAwareConcurrentReadMap.java =================================================================== --- MemoryAwareConcurrentReadMap.java (revision 6188) +++ MemoryAwareConcurrentReadMap.java (working copy) @@ -98,7 +98,7 @@ private volatile long concurrentReads = 0; private Object writeLock = new Object(); - private Object writeQueue = new Object(); + //private Object writeQueue = new Object(); private Entry[] table; private int tableSize; @@ -301,13 +301,13 @@ } private void waitForWriteState() { - synchronized (writeQueue) { + //synchronized (writeQueue) { while (concurrentReads!=0) { try { - writeQueue.wait(); + writeLock.wait(); } catch (InterruptedException e) {} } - } + //} } public void putStrong(Object key, Object value) { @@ -331,10 +331,12 @@ private void unlockWrite(){ synchronized (writeLock) { concurrentReads--; + writeLock.notifyAll(); } + /* synchronized (writeQueue) { writeQueue.notify(); - } + }*/ } public Object get(Object key) {