void monitor(MonitorTask task) throws InterruptedException {
      boolean isAlive = false;
      synchronized (this) {
        if (alive) {
          isAlive = true;
          producer = Thread.currentThread();
        }
      }
      if (isAlive) {
        try {
          this.task.put(task);
        } catch (InterruptedException e) {
          // fall through and return
        } finally {
          synchronized (this) {
            producer = null;
          }
        }
      }
    }
Used to hand-off from producer to consumer
geode-core/src/main/java/org/apache/geode/internal/statistics/StatMonitorHandler.java