private void waitUntilInitialValueIsPulled(String key) { int waitingTime = 0; synchronized (mutex.get(key)) { while (coRepository.exists(key) == false) { try { waitingTime += 100; if (waitingTime > timeoutInMillis) { throw new TimeoutException( "Waited so long or key does`t exist on OriginalRepository. Key is " + key); } mutex.get(key).wait(100); } catch (InterruptedException e) { } } } }
private void wakeUpAllThreadsWatingForCompletingPull(Object key) { synchronized (mutex.get(key)) { mutex.get(key).notifyAll(); } }