summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-06 08:19:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-06 08:19:20 +0000
commit004127aa904cec52e80bbfc756c4a18b7f4970f0 (patch)
treeea2be7d7636dfbfa75cea78cb7248331e15ba78b
parenta4a18e67e0970d1edde4b5b5535be561b92dd730 (diff)
* rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.
(backported from CVS HEAD) [ruby-dev:24993] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--rubysig.h5
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index bdcbd82e60..079f47fbd0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
+Mon Dec 6 17:19:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.
+ (backported from CVS HEAD) [ruby-dev:24993]
+
Mon Dec 6 10:18:17 2004 Dave Thomas <dave@pragprog.com>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in):
+ * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in):
Oops - 1.8 doesn't have String#clear
Mon Dec 6 01:42:08 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
diff --git a/rubysig.h b/rubysig.h
index 8871e3aa03..fd43e85d28 100644
--- a/rubysig.h
+++ b/rubysig.h
@@ -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 {\