Github user lvfangmin commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/689#discussion_r234399392 --- Diff: zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/WatcherCleaner.java --- @@ -102,24 +104,25 @@ public void addDeadWatcher(int watcherBit) { totalDeadWatchers.get() >= maxInProcessingDeadWatchers) { try { RATE_LOGGER.rateLimitLog("Waiting for dead watchers cleaning"); - synchronized(totalDeadWatchers) { - totalDeadWatchers.wait(100); + synchronized(produserAndConsumerLock) { + produserAndConsumerLock.wait(100); } } catch (InterruptedException e) { LOG.info("Got interrupted while waiting for dead watches " + "queue size"); + break; } } - synchronized (this) { - if (deadWatchers.add(watcherBit)) { - totalDeadWatchers.incrementAndGet(); - if (deadWatchers.size() >= watcherCleanThreshold) { - synchronized (cleanEvent) { - cleanEvent.notifyAll(); + synchronized (this) { --- End diff -- The indent seems not correct.
---