code: public SignalServiceEnvelope read(long timeout, TimeUnit unit)
        throws InvalidVersionException, IOException, TimeoutException
    {
      return read(timeout, unit, new NullMessagePipeCallback());
    }
docs: A blocking call that reads a message off the pipe.  When this
  call returns, the message has been acknowledged and will not
  be retransmitted.
  
  @param timeout The timeout to wait for.
  @param unit The timeout time unit.
  @return A new message.
  
  @throws InvalidVersionException
  @throws IOException
  @throws TimeoutException