m_messageHandlers.send(message);
m_messageDispatcher.send(message);
  public void processOneMessage() {    while (true) {      if (!m_processing.await(true)) {        // await() interrupted before we were listening.        return;      }      try {        final Message message = m_receiver.waitForMessage();        if (message == null) {          // Current receiver has been shut down.          m_processing.set(false);          // We return, to give our caller a chance to handle any shut down.        }        else {          m_messageHandlers.send(message);        }        break;      }      catch (CommunicationException e) {        // The receive or send failed. We only set m_processing to false when        // our receiver has been shut down.        m_errorQueue.handleException(e);      }    }  }