* eval.c (rb_thread_restore_context): inhibit interrupts in
critical section while context switching. [ruby-talk:64785] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0b78e04234
commit
afca4f0cfd
@ -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>
|
Wed Feb 19 18:27:42 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
|
||||||
|
|
||||||
* node.h (nd_cpath): nested class/module declaration.
|
* node.h (nd_cpath): nested class/module declaration.
|
||||||
|
3
eval.c
3
eval.c
@ -7825,6 +7825,7 @@ static int
|
|||||||
thread_switch(n)
|
thread_switch(n)
|
||||||
int n;
|
int n;
|
||||||
{
|
{
|
||||||
|
rb_trap_immediate = (curr_thread->flags&0x100)?1:0;
|
||||||
switch (n) {
|
switch (n) {
|
||||||
case 0:
|
case 0:
|
||||||
return 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);
|
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_frame = th->frame;
|
||||||
ruby_scope = th->scope;
|
ruby_scope = th->scope;
|
||||||
ruby_class = th->klass;
|
ruby_class = th->klass;
|
||||||
@ -7898,7 +7900,6 @@ rb_thread_restore_context(th, exit)
|
|||||||
ruby_dyna_vars = th->dyna_vars;
|
ruby_dyna_vars = th->dyna_vars;
|
||||||
ruby_block = th->block;
|
ruby_block = th->block;
|
||||||
scope_vmode = th->flags&SCOPE_MASK;
|
scope_vmode = th->flags&SCOPE_MASK;
|
||||||
rb_trap_immediate = (th->flags&0x100)?1:0;
|
|
||||||
ruby_iter = th->iter;
|
ruby_iter = th->iter;
|
||||||
prot_tag = th->tag;
|
prot_tag = th->tag;
|
||||||
tracing = th->tracing;
|
tracing = th->tracing;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user