diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-19 16:27:47 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-19 16:27:47 +0000 |
commit | 4b593002967d66925fd9acdef4dbf5a2d0f7e43c (patch) | |
tree | 1f39819ebd0b882467d0cafac2ae02da439ff453 | |
parent | 81be165cb5a2f275de1fd203602df5fe5743f04f (diff) | |
download | ruby-4b593002967d66925fd9acdef4dbf5a2d0f7e43c.tar.gz ruby-4b593002967d66925fd9acdef4dbf5a2d0f7e43c.tar.xz ruby-4b593002967d66925fd9acdef4dbf5a2d0f7e43c.zip |
* eval.c (rb_thread_restore_context): inhibit interrupts in
critical section while context switching. [ruby-talk:64785]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Thu Feb 20 01:23:59 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net> + + * eval.c (rb_thread_restore_context): inhibit interrupts in + critical section while context switching. [ruby-talk:64785] + Wed Feb 19 18:27:42 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net> * node.h (nd_cpath): nested class/module declaration. @@ -7825,6 +7825,7 @@ static int thread_switch(n) int n; { + rb_trap_immediate = (curr_thread->flags&0x100)?1:0; switch (n) { case 0: return 0; @@ -7890,6 +7891,7 @@ rb_thread_restore_context(th, exit) if (&v < th->stk_pos + th->stk_len) stack_extend(th, exit); } + rb_trap_immediate = 0; /* inhibit interrupts from here */ ruby_frame = th->frame; ruby_scope = th->scope; ruby_class = th->klass; @@ -7898,7 +7900,6 @@ rb_thread_restore_context(th, exit) ruby_dyna_vars = th->dyna_vars; ruby_block = th->block; scope_vmode = th->flags&SCOPE_MASK; - rb_trap_immediate = (th->flags&0x100)?1:0; ruby_iter = th->iter; prot_tag = th->tag; tracing = th->tracing; |