package org.limewire.listener;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Used to mark an event as needing to be run on a new thread.
* If queueName is specified, then all events specifying that
* queueName within a specific {@link EventListenerList} will
* be run in the same single-threaded {@link Executor}.
*
* This allows events to be run in a separate thread than
* the thread generating the events, yet still be queued
* to run one after the other.
*/
@Target(value = { ElementType.METHOD })
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface BlockingEvent {
String queueName() default "";
}