diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-24 08:47:36 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-24 08:47:36 +0000 |
commit | e9e100aa48cfc43a588ee411e1fbb861de956587 (patch) | |
tree | 76c9cdce61ad6204b3c7509f5a612de21404f19c /rubysig.h | |
parent | 932075e82e1879bb0258bccd607c4c30b9ff486d (diff) |
* eval.c (catch_timer): do not call rb_thread_schedule() inside to
avoid pthread_mutex_lock() deadlock. interrupts to system calls
are detected by TRAP_END via EINTR error.
* eval.c (thread_timer): do not post signal unless it is
absolutely necessary.
* rubysig.h (TRAP_END): add CHECK_INTS to switch thread.
* regex.c (re_compile_pattern): check if nextp is smaller than
pend. [ruby-dev:22372]
* eval.c (umethod_bind): remove method overridden check.
[ruby-dev:22366]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'rubysig.h')
-rw-r--r-- | rubysig.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -26,6 +26,7 @@ typedef LONG rb_atomic_t; rb_atomic_t trap_immediate = ATOMIC_SET(rb_trap_immediate, 1) # define TRAP_END\ ATOMIC_SET(rb_trap_immediate, trap_immediate);\ + CHECK_INTS;\ } while (0) # define RUBY_CRITICAL(statements) do {\ rb_w32_enter_critical();\ @@ -44,6 +45,7 @@ typedef int rb_atomic_t; int trap_immediate = rb_trap_immediate;\ rb_trap_immediate = 1 # define TRAP_END rb_trap_immediate = trap_immediate;\ + CHECK_INTS;\ } while (0) # define RUBY_CRITICAL(statements) do {\ |