public synchronized void emit(Event event) {
		// Give the event to the scheduler
		scheduler.addEvent(event);

		// If no event are currently being delivered, spawn the distribution thread
		if(activeEvent == null) {
			nextEvent();

			new Thread() {
				public void run() {
					while(activeEvent != null) {
						try {
							AsyncEventEmitter.super.emit(activeEvent);
						}
						finally {
							nextEvent();
						}
					}
				}
			}.start();
		}
	}