protected void doEmit ( Event event , Scope < ? super Address > scope ) { assert scope != null ; assert event != null ; final UniqueAddressParticipantRepository < Address > particips = getParticipantInternalDataStructure ( ) ; final SynchronizedCollection < EventListener > listeners = particips . getListeners ( ) ; synchronized ( listeners . mutex ( ) ) { for ( final EventListener listener : listeners ) { final Address adr = getAddress ( listener ) ; if ( scope . matches ( adr ) ) { this . executorService . submit ( new AsyncRunner ( listener , event ) ) ; } } } }
Do the emission of the event .