src/main/java/js/net/EventStream.java
public void push(Event event) {
		if (!active.get()) {
			throw new BugError("Event stream |%s| is closed.", this);
		}
		// BlockingQueue is thread safe so we do not need to synchronize this method
		try {
			if (!eventsQueue.offer(event, EVENTS_QUEUE_PUSH_TIMEOUT, TimeUnit.MILLISECONDS)) {
				log.warn("Timeout trying to push event on events queue. Event |%s| not processed.", event);
			}
		} catch (InterruptedException unused) {
			log.warn("Thread interruption on event stream |%s| while trying to push event to queue. Event |%s| not processed.", this, event);
			Thread.currentThread().interrupt();
		}
	}
public void push(Event event) {
		if (!active.get()) {
			throw new BugError("Event stream |%s| is closed.", this);
		}
		// BlockingQueue is thread safe so we do not need to synchronize this method
		try {
			if (!eventsQueue.offer(event, EVENTS_QUEUE_PUSH_TIMEOUT, TimeUnit.MILLISECONDS)) {
				log.warn("Timeout trying to push event on events queue. Event |%s| not processed.", event);
			}
		} catch (InterruptedException unused) {
			log.warn("Thread interruption on event stream |%s| while trying to push event to queue. Event |%s| not processed.", this, event);
			Thread.currentThread().interrupt();
		}
	}
public void push ( Event event ) { if ( ! active . get ( ) ) { throw new BugError ( "Event stream |%s| is closed." , this ) ; } // BlockingQueue is thread safe so we do not need to synchronize this method
 try { if ( ! eventsQueue . offer ( event , EVENTS_QUEUE_PUSH_TIMEOUT , TimeUnit . MILLISECONDS ) ) { log . warn ( "Timeout trying to push event on events queue. Event |%s| not processed." , event ) ; } } catch ( InterruptedException unused ) { log . warn ( "Thread interruption on event stream |%s| while trying to push event to queue. Event |%s| not processed." , this , event ) ; Thread . currentThread ( ) . interrupt ( ) ; } }
Push event to this events stream client. This method just stores the event on {@link #eventsQueue events queue} being
executed into invoker thread. This events stream thread is blocked on the events queue; after this method execution it
will unblock and process the event, see {@link #loop()} method.
<p>
Queue offer operation is guarded by {@link #EVENTS_QUEUE_PUSH_TIMEOUT}. This timeout can occur only in a very improbable
condition of events flood combined with system resources starvation. For this reason there is no attempt to recover;
event is simple lost with warning on application logger.

@param event event instance to push on event stream.
@throws BugError if trying to use this method after stream close.
Push event to this events stream client . This method just stores the event on { @link #eventsQueue events queue } being executed into invoker thread . This events stream thread is blocked on the events queue ; after this method execution it will unblock and process the event see { @link #loop () } method . <p > Queue offer operation is guarded by { @link #EVENTS_QUEUE_PUSH_TIMEOUT } . This timeout can occur only in a very improbable condition of events flood combined with system resources starvation . For this reason there is no attempt to recover ; event is simple lost with warning on application logger .