1 /**********************************************************************
2 
3   thread.h -
4 
5   $Author: matz $
6   created at: Tue Jul 10 17:35:43 JST 2012
7 
8   Copyright (C) 2007 Yukihiro Matsumoto
9 
10 **********************************************************************/
11 
12 #ifndef RUBY_THREAD_H
13 #define RUBY_THREAD_H 1
14 
15 #if defined(__cplusplus)
16 extern "C" {
17 #if 0
18 } /* satisfy cc-mode */
19 #endif
20 #endif
21 
22 #include "ruby/intern.h"
23 
24 RUBY_SYMBOL_EXPORT_BEGIN
25 
26 void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
27 
28 void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
29 				 rb_unblock_function_t *ubf, void *data2);
30 void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1,
31 				  rb_unblock_function_t *ubf, void *data2);
32 
33 #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01
34 #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_
35 
36 RUBY_SYMBOL_EXPORT_END
37 
38 #if defined(__cplusplus)
39 #if 0
40 { /* satisfy cc-mode */
41 #endif
42 }  /* extern "C" { */
43 #endif
44 
45 #endif /* RUBY_THREAD_H */
46