src/macosx/native/sun/osxapp/ThreadUtilities.h

Print this page




 105 #define AWT_ASSERT_APPKIT_THREAD      \
 106 do {                                  \
 107     while (pthread_main_np() == 0) {} \
 108 } while (0)
 109 
 110 #define AWT_ASSERT_NOT_APPKIT_THREAD  \
 111 do {                                  \
 112     while (pthread_main_np() != 0) {} \
 113 } while (0)
 114 
 115 #endif /* AWT_THREAD_ASSERTS_WAIT */
 116 
 117 #else /* AWT_THREAD_ASSERTS */
 118 
 119 #define AWT_ASSERT_APPKIT_THREAD     do {} while (0)
 120 #define AWT_ASSERT_NOT_APPKIT_THREAD do {} while (0)
 121 
 122 #endif /* AWT_THREAD_ASSERTS */
 123 // --------------------------------------------------------------------------
 124 
 125 // This tracks if we are current inside of a performOnMainThread that is both waiting and in the AWTRunLoopMode
 126 extern BOOL sInPerformFromJava;
 127 
 128 // This is an empty Obj-C object just so that -performSelectorOnMainThread
 129 // can be used, and to use the Obj-C +initialize feature.
 130 __attribute__((visibility("default")))
 131 @interface ThreadUtilities : NSObject { }
 132 
 133 + (JNIEnv*)getJNIEnv;
 134 + (JNIEnv*)getJNIEnvUncached;
 135 
 136 + (void)performOnMainThread:(SEL)aSelector onObject:(id)target withObject:(id)arg waitUntilDone:(BOOL)wait awtMode:(BOOL)inAWT;
 137 
 138 //Wrappers for the corresponding JNFRunLoop methods with a check for main thread
 139 + (void)performOnMainThreadWaiting:(BOOL)wait block:(void (^)())block;
 140 + (void)performOnMainThread:(SEL)aSelector on:(id)target withObject:(id)arg waitUntilDone:(BOOL)wait;
 141 @end
 142 
 143 void OSXAPP_SetJavaVM(JavaVM *vm);
 144 
 145 #endif /* __THREADUTILITIES_H */


 105 #define AWT_ASSERT_APPKIT_THREAD      \
 106 do {                                  \
 107     while (pthread_main_np() == 0) {} \
 108 } while (0)
 109 
 110 #define AWT_ASSERT_NOT_APPKIT_THREAD  \
 111 do {                                  \
 112     while (pthread_main_np() != 0) {} \
 113 } while (0)
 114 
 115 #endif /* AWT_THREAD_ASSERTS_WAIT */
 116 
 117 #else /* AWT_THREAD_ASSERTS */
 118 
 119 #define AWT_ASSERT_APPKIT_THREAD     do {} while (0)
 120 #define AWT_ASSERT_NOT_APPKIT_THREAD do {} while (0)
 121 
 122 #endif /* AWT_THREAD_ASSERTS */
 123 // --------------------------------------------------------------------------
 124 





 125 __attribute__((visibility("default")))
 126 @interface ThreadUtilities { }
 127 
 128 + (JNIEnv*)getJNIEnv;
 129 + (JNIEnv*)getJNIEnvUncached;
 130 


 131 //Wrappers for the corresponding JNFRunLoop methods with a check for main thread
 132 + (void)performOnMainThreadWaiting:(BOOL)wait block:(void (^)())block;
 133 + (void)performOnMainThread:(SEL)aSelector on:(id)target withObject:(id)arg waitUntilDone:(BOOL)wait;
 134 @end
 135 
 136 void OSXAPP_SetJavaVM(JavaVM *vm);
 137 
 138 #endif /* __THREADUTILITIES_H */