docs: public boolean checkRead()
      {
          if (!inActive) {
              return false;
  
          }
          if (state != State.ACTIVE && state != State.WAITING_FOR_DELIMITER) {
              return false;
          }
  
          //  Check if there's an item in the pipe.
          if (!inpipe.checkRead()) {
              inActive = false;
              return false;
          }
  
          //  If the next item in the pipe is message delimiter,
          //  initiate termination process.
          if (isDelimiter(inpipe.probe())) {
              Msg msg = inpipe.read();
              assert (msg != null);
              processDelimiter();
              return false;
          }
  
          return true;
      }