001package jmri;
002
003import java.lang.annotation.*;
004import javax.annotation.concurrent.ThreadSafe;
005
006/**
007 * Annotation denoting that a method or constructor may be called on any thread.
008 * <p>
009 * This annotation implies a method is {@link ThreadSafe}, but says nothing 
010 * about whether or not a class is ThreadSafe. 
011 * <p>
012 * For more information on JMRI threading conventions, see the 
013 * <a href="http://jmri.org/help/en/html/doc/Technical/Threads.shtml">JMRI Threading docoumentation page</a>.
014 *
015 * @author Bob Jacobsen  Copyright 2018
016 * @author Paul Bender Copyright 2018
017 */
018
019@Retention(RetentionPolicy.CLASS)  // For access by SpotBugs et al 
020@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
021@Documented
022@Inherited
023
024public @interface InvokeOnAnyThread {}
025