diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-30 17:28:17 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-30 17:28:17 +0000 |
| commit | eee6a439cf5abf9dfc0a922062034fa5b9730a01 (patch) | |
| tree | 0f1f7d9c26f9ae4e8de5c071b7ca8b3a5587bd60 | |
| parent | 29732d5eecffb9e88dec10c09cf5d47c591ff798 (diff) | |
* signal.c (sighandler): call handler immediately only for default
handlers. [ruby-dev:25003]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | eval.c | 2 | ||||
| -rw-r--r-- | signal.c | 2 |
3 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Wed Dec 1 02:21:02 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + + * signal.c (sighandler): call handler immediately only for default + handlers. [ruby-dev:25003] + Tue Nov 30 23:49:12 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> * io.c (pipe_open): errno should be preserved for rb_sys_fail() when @@ -9959,7 +9959,7 @@ static int rb_thread_switch(n) int n; { - rb_trap_immediate = (curr_thread->flags&0x100)?1:0; + rb_trap_immediate = (curr_thread->flags&(1<<8))?1:0; switch (n) { case 0: return 0; @@ -417,7 +417,7 @@ sighandler(sig) ruby_signal(sig, sighandler); #endif - if (ATOMIC_TEST(rb_trap_immediate)) { + if (trap_list[sig].cmd == 0 && ATOMIC_TEST(rb_trap_immediate)) { IN_MAIN_CONTEXT(signal_exec, sig); ATOMIC_SET(rb_trap_immediate, 1); } |
