001    package edu.rice.cs.cunit.threadCheck.predicates;
002    
003    import edu.rice.cs.cunit.threadCheck.PredicateLink;
004    
005    import java.lang.annotation.ElementType;
006    import java.lang.annotation.Retention;
007    import java.lang.annotation.RetentionPolicy;
008    import java.lang.annotation.Target;
009    
010    /**
011     * An annotation used to designate methods that are not allowed to be run when the monitor
012     * of "this" is owned by any thread.
013     * @author Mathias Ricken
014     */
015    @Retention(RetentionPolicy.RUNTIME)
016    @Target({ElementType.CONSTRUCTOR,ElementType.METHOD,ElementType.TYPE})
017    
018    @PredicateLink(value = ThreadCheckPredicates.class, method = "checkMonitorNotOwnedByAnyThread")
019    public @interface NoneSynchronizedThis {
020    }