diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-06 08:19:20 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-06 08:19:20 +0000 |
| commit | 39a61087e39b7efae05fca8ce6fa9e80a4f9af02 (patch) | |
| tree | ea2be7d7636dfbfa75cea78cb7248331e15ba78b /rubysig.h | |
| parent | 9a3597c43cff833deee4cd3e9868b1f083935bfc (diff) | |
| download | ruby-39a61087e39b7efae05fca8ce6fa9e80a4f9af02.tar.gz ruby-39a61087e39b7efae05fca8ce6fa9e80a4f9af02.tar.xz ruby-39a61087e39b7efae05fca8ce6fa9e80a4f9af02.zip | |
* rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.
(backported from CVS HEAD) [ruby-dev:24993]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'rubysig.h')
| -rw-r--r-- | rubysig.h | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -46,10 +46,13 @@ typedef int rb_atomic_t; # define ATOMIC_DEC(var) (--(var)) # define TRAP_BEG do {\ + int saved_errno = 0;\ int trap_immediate = rb_trap_immediate;\ rb_trap_immediate = 1 # define TRAP_END rb_trap_immediate = trap_immediate;\ - CHECK_INTS;\ + saved_errno = errno;\ + CHECK_INTS;\ + errno = saved_errno;\ } while (0) # define RUBY_CRITICAL(statements) do {\ |
