code: private synchronized ReceiveAllowedThread getReceiveAllowedThread(DestinationHandler destinationHandler)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "getReceiveAllowedThread", destinationHandler);
  
          if (_receiveAllowedThread == null)
          {
              _receiveAllowedThread = new ReceiveAllowedThread(destinationHandler);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "getReceiveAllowedThread", _receiveAllowedThread);
  
              return _receiveAllowedThread;
          }
  
          _receiveAllowedThread.markForUpdate();
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "getReceiveAllowedThread", null);
          return null;
      }
docs: Checks if there is a ReceiveAllowedThread already running. If there is it will mark the
  thread to indicate that a rerun has been requested.
  If not, a new ReceiveAllowedThread is created and returned.
  
  @param destinationHandler