code: public Bus<M> post(M message, long timeout, TimeUnit unit) throws InterruptedException {
  		queue.offer(message, timeout, unit);
  		return this;
  	}
docs: Posts a message to all registered destinations, waiting up to the specified
  number of time units if the internal queue is full.
  
  @param message
  the message to be posted.
  @param timeout
  a number of time units to wait if the message cannot be queued immediately
  for dispatching.
  @param unit
  the time units in which the timeout is expressed.
  @return
  the objects itself, for method chaining.
  @throws InterruptedException