From ae317b518c4dcbcbf0ed02bb9e6cd7513f0a34fe Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 8 Feb 2007 11:51:40 +0000 Subject: * yarvcore.h, thread.c: fix to use pthread on cygwin. * yarvcore.h, thread.c: move GVL_UNLOCK_BEGIN() and GVL_UNLOCK_END() from yarvcore.h to thread.c. * thread.c: change GVL_UNLOCK_RANGE() arguments (adding ubf as 2nd argument). * thread.c: fix to use polling in select on cygwin and mswin32. * thread.c, thread_pthread.ci, thread_win32.ci, yarvcore.h: rename: * rb_thread_t#interrupt_function -> unblock_function * rb_interrupt_function_t -> rb_unblock_function * some interrupt function name -> ubf_* * yarv_* -> * git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- yarvcore.h | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'yarvcore.h') diff --git a/yarvcore.h b/yarvcore.h index 8bfe5fe20f..4d98f42b90 100644 --- a/yarvcore.h +++ b/yarvcore.h @@ -24,7 +24,7 @@ #include "debug.h" #include "vm_opts.h" -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) #include "thread_win32.h" #elif defined(HAVE_PTHREAD_H) #include "thread_pthread.h" @@ -376,7 +376,7 @@ struct rb_vm_tag { struct rb_vm_tag *prev; }; -typedef void rb_interrupt_function_t(struct rb_thread_struct *); +typedef void rb_unblock_function_t(struct rb_thread_struct *); #define RUBY_VM_VALUE_CACHE_SIZE 0x1000 #define USE_VALUE_CACHE 1 @@ -423,7 +423,7 @@ typedef struct rb_thread_struct int exec_signal; int interrupt_flag; - rb_interrupt_function_t *interrupt_function; + rb_unblock_function_t *unblock_function; rb_thread_lock_t interrupt_lock; struct rb_vm_tag *tag; @@ -632,19 +632,6 @@ extern rb_vm_t *theYarvVM; #error "unsupported thread model" #endif -#define GVL_UNLOCK_BEGIN() do { \ - rb_thread_t *_th_stored = GET_THREAD(); \ - rb_gc_save_machine_context(_th_stored); \ - native_mutex_unlock(&_th_stored->vm->global_interpreter_lock) - -#define GVL_UNLOCK_END() \ - native_mutex_lock(&_th_stored->vm->global_interpreter_lock); \ - rb_thread_set_current(_th_stored); \ -} while(0) - -NOINLINE(void rb_gc_set_stack_end(VALUE **stack_end_p)); -NOINLINE(void rb_gc_save_machine_context(rb_thread_t *)); - void rb_thread_execute_interrupts(rb_thread_t *); #define RUBY_VM_CHECK_INTS_TH(th) do { \ -- cgit v1.2.3