summaryrefslogtreecommitdiffstats
path: root/rubysig.h
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-11-16 07:24:21 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-11-16 07:24:21 +0000
commit5a3fb9f0f9777bb4d2b177a2a59ca0b6972e9e93 (patch)
treee4ece206c3afe82313f3faa4a82468cdfb32d2f5 /rubysig.h
parent757a5f338f16fcf55e02b3dcf67a5df795c5d40b (diff)
downloadruby-5a3fb9f0f9777bb4d2b177a2a59ca0b6972e9e93.tar.gz
ruby-5a3fb9f0f9777bb4d2b177a2a59ca0b6972e9e93.tar.xz
ruby-5a3fb9f0f9777bb4d2b177a2a59ca0b6972e9e93.zip
matz
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'rubysig.h')
-rw-r--r--rubysig.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/rubysig.h b/rubysig.h
index 88b30830d..1975215ef 100644
--- a/rubysig.h
+++ b/rubysig.h
@@ -37,8 +37,12 @@ typedef int rb_atomic_t;
# define ATOMIC_INC(var) (++(var))
# define ATOMIC_DEC(var) (--(var))
-# define TRAP_BEG (rb_trap_immediate=1)
-# define TRAP_END (rb_trap_immediate=0)
+# define TRAP_BEG do {\
+ int trap_immediate = rb_trap_immediate;\
+ rb_trap_immediate = 1;
+# define TRAP_END rb_trap_immediate = trap_immediate;\
+} while (0)
+
# define RUBY_CRITICAL(statements) do {\
int trap_immediate = rb_trap_immediate;\
rb_trap_immediate = 0;\