private void waitUntilDone() throws InterruptedException {
    if (t.isClosed() || Thread.interrupted()) {
      throw new InterruptedException();
    }
    synchronized (this) {
      while (failure == null && result == null) {
        if (t.isClosed() || Thread.interrupted()) {
          throw new InterruptedException();
        }
        wait(); // spurious wakeup ok
      }
    }
  }
The thread that will be doing the deserialization of the message.
geode-core/src/main/java/org/apache/geode/internal/tcp/MsgDestreamer.java