[前][次][番号順一覧][スレッド一覧]

ruby-changes:19897

From: nagachika <ko1@a...>
Date: Mon, 6 Jun 2011 23:07:05 +0900 (JST)
Subject: [ruby-changes:19897] nagachika:r31944 (trunk): * cont.c: use #if FIBER_USE_NATIVE instead of #ifdef.

nagachika	2011-06-06 23:06:59 +0900 (Mon, 06 Jun 2011)

  New Revision: 31944

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31944

  Log:
    * cont.c: use #if FIBER_USE_NATIVE instead of #ifdef.
      you can suppress use of setcontext for Fiber with compile option
      -DFIBER_USE_NATIVE=0

  Modified files:
    trunk/ChangeLog
    trunk/cont.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31943)
+++ ChangeLog	(revision 31944)
@@ -1,3 +1,9 @@
+Mon Jun  6 22:51:43 2011  CHIKANAGA Tomoyuki  <nagachika00@g...>
+
+	* cont.c: use #if FIBER_USE_NATIVE instead of #ifdef.
+	  you can suppress use of setcontext for Fiber with compile option
+	  -DFIBER_USE_NATIVE=0
+
 Mon Jun  6 21:59:23 2011  Tadayoshi Funaba  <tadf@d...>
 
 	* test/date/test_switch_hitter.rb: added a test.
Index: cont.c
===================================================================
--- cont.c	(revision 31943)
+++ cont.c	(revision 31944)
@@ -33,10 +33,11 @@
  * are represented by stack pointer (higher bits of stack pointer).
  * TODO: check such constraint on configure.
  */
-
+#elif !defined(FIBER_USE_NATIVE)
+#define FIBER_USE_NATIVE 0
 #endif
 
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 #ifndef _WIN32
 #include <unistd.h>
 #include <sys/mman.h>
@@ -84,7 +85,7 @@
     TERMINATED
 };
 
-#if defined(FIBER_USE_NATIVE) && !defined(_WIN32)
+#if FIBER_USE_NATIVE && !defined(_WIN32)
 #define MAX_MAHINE_STACK_CACHE  10
 static int machine_stack_cache_index = 0;
 typedef struct machine_stack_cache_struct {
@@ -101,7 +102,7 @@
     enum fiber_status status;
     struct rb_fiber_struct *prev_fiber;
     struct rb_fiber_struct *next_fiber;
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 #ifdef _WIN32
     void *fib_handle;
 #else
@@ -183,7 +184,7 @@
     if (ptr) {
 	rb_context_t *cont = ptr;
 	RUBY_FREE_UNLESS_NULL(cont->saved_thread.stack); fflush(stdout);
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 	if (cont->type == CONTINUATION_CONTEXT) {
 	    /* cont */
 	    RUBY_FREE_UNLESS_NULL(cont->machine_stack);
@@ -490,7 +491,7 @@
     th->first_proc = sth->first_proc;
 }
 
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 #ifdef _WIN32
 static void
 fiber_set_stack_location(void)
@@ -1030,7 +1031,7 @@
 
     th->first_proc = proc;
 
-#ifndef FIBER_USE_NATIVE
+#if !FIBER_USE_NATIVE
     MEMCPY(&cont->jmpbuf, &th->root_jmpbuf, rb_jmpbuf_t, 1);
 #endif
 
@@ -1081,7 +1082,7 @@
 {
     VALUE value = fib->cont.value;
     fib->status = TERMINATED;
-#if defined(FIBER_USE_NATIVE) && !defined(_WIN32)
+#if FIBER_USE_NATIVE && !defined(_WIN32)
     /* Ruby must not switch to other thread until storing terminated_machine_stack */
     terminated_machine_stack.ptr = fib->context.uc_stack.ss_sp;
     terminated_machine_stack.size = fib->context.uc_stack.ss_size / sizeof(VALUE);
@@ -1143,7 +1144,7 @@
     /* no need to allocate vm stack */
     fib = fiber_t_alloc(fiber_alloc(rb_cFiber));
     fib->cont.type = ROOT_FIBER_CONTEXT;
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 #ifdef _WIN32
     fib->fib_handle = ConvertThreadToFiber(0);
 #endif
@@ -1182,7 +1183,7 @@
 	th->root_fiber = th->fiber = fib->cont.self;
     }
 
-#ifndef FIBER_USE_NATIVE
+#if !FIBER_USE_NATIVE
     cont_save_machine_stack(th, &fib->cont);
 
     if (ruby_setjmp(fib->cont.jmpbuf)) {
@@ -1214,7 +1215,7 @@
 	if (fib->cont.argc == -1) rb_exc_raise(fib->cont.value);
 	return fib->cont.value;
     }
-#ifndef FIBER_USE_NATIVE
+#if !FIBER_USE_NATIVE
     else {
 	return Qundef;
     }
@@ -1253,7 +1254,7 @@
 	cont = &fib->cont;
 	cont->argc = -1;
 	cont->value = value;
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
 	{
 	    VALUE oldfibval;
 	    rb_fiber_t *oldfib;
@@ -1274,7 +1275,7 @@
     cont->value = make_passing_arg(argc, argv);
 
     value = fiber_store(fib);
-#ifndef FIBER_USE_NATIVE
+#if !FIBER_USE_NATIVE
     if (value == Qundef) {
 	cont_restore_0(cont, &value);
 	rb_bug("rb_fiber_resume: unreachable");
@@ -1420,7 +1421,7 @@
 void
 Init_Cont(void)
 {
-#ifdef FIBER_USE_NATIVE
+#if FIBER_USE_NATIVE
     rb_thread_t *th = GET_THREAD();
 
 #ifdef _WIN32

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]