code: public Message read(long timeout, TimeUnit unit)
              throws InterruptedException, IOException {
          return mInMessages.poll(timeout, unit);
      }
docs: Reads (receives) a {@link Message} that came to this {@link ISOBUSSOcket}
  , or {@code null} if the specified waiting time elapses before a
  {@link Message} is available
  
  @param timeout
  how long to wait before giving up, in units of {@code unit}
  @param unit
  a {@link TimeUnit} determining how to interpret the
  {@code timeout} parameter
  @return a received {link Message}
  @throws InterruptedException
  if interrupted while waiting for a {@link Message}
  
  @see #ISOBUSSocket(Bus, NAME, Collection)