00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef RUBY_THREAD_H
00013 #define RUBY_THREAD_H 1
00014
00015 #if defined(__cplusplus)
00016 extern "C" {
00017 #if 0
00018 }
00019 #endif
00020 #endif
00021
00022 #include "ruby/intern.h"
00023
00024 #if defined __GNUC__ && __GNUC__ >= 4
00025 #pragma GCC visibility push(default)
00026 #endif
00027
00028 void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
00029
00030 void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
00031 rb_unblock_function_t *ubf, void *data2);
00032 void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1,
00033 rb_unblock_function_t *ubf, void *data2);
00034
00035 #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01
00036 #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_
00037
00038 #if defined __GNUC__ && __GNUC__ >= 4
00039 #pragma GCC visibility pop
00040 #endif
00041
00042 #if defined(__cplusplus)
00043 #if 0
00044 {
00045 #endif
00046 }
00047 #endif
00048
00049 #endif
00050