Ruby  2.0.0p247(2013-06-27revision41674)
include/ruby/thread.h
Go to the documentation of this file.
00001 /**********************************************************************
00002 
00003   thread.h -
00004 
00005   $Author: matz $
00006   created at: Tue Jul 10 17:35:43 JST 2012
00007 
00008   Copyright (C) 2007 Yukihiro Matsumoto
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 } /* satisfy cc-mode */
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 { /* satisfy cc-mode */
00045 #endif
00046 }  /* extern "C" { */
00047 #endif
00048 
00049 #endif /* RUBY_THREAD_H */
00050