guava/src/com/google/common/eventbus/EventBus.java
public void post(Object event) {
    Iterator<Subscriber> eventSubscribers = subscribers.getSubscribers(event);
    if (eventSubscribers.hasNext()) {
      dispatcher.dispatch(event, eventSubscribers);
    } else if (!(event instanceof DeadEvent)) {
      // the event had no subscribers and was not itself a DeadEvent
      post(new DeadEvent(this, event));
    }
  }
public void post(Object event) {
    Iterator<Subscriber> eventSubscribers = subscribers.getSubscribers(event);
    if (eventSubscribers.hasNext()) {
      dispatcher.dispatch(event, eventSubscribers);
    } else if (!(event instanceof DeadEvent)) {
      // the event had no subscribers and was not itself a DeadEvent
      post(new DeadEvent(this, event));
    }
  }
public void post ( Object event ) { Iterator < Subscriber > eventSubscribers = subscribers . getSubscribers ( event ) ; if ( eventSubscribers . hasNext ( ) ) { dispatcher . dispatch ( event , eventSubscribers ) ; } else if ( ! ( event instanceof DeadEvent ) ) { // the event had no subscribers and was not itself a DeadEvent post ( new DeadEvent ( this , event ) ) ; } }
Posts an event to all registered subscribers. This method will return successfully after the
event has been posted to all subscribers, and regardless of any exceptions thrown by
subscribers.

<p>If no subscribers have been subscribed for {@code event}'s class, and {@code event} is not
already a {@link DeadEvent}, it will be wrapped in a DeadEvent and reposted.

@param event event to post.
Posts an event to all registered subscribers . This method will return successfully after the event has been posted to all subscribers and regardless of any exceptions thrown by subscribers .