summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-23 07:52:38 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-23 07:52:38 +0000
commitfa0053812ac44024ea9a6cedeb70b5535868d191 (patch)
tree2fa3966a581fc9b57e35af22e41cbc04362be7bc /eval.c
parent29cdaacd1546c3dac74453033c845a183f37410a (diff)
downloadruby-fa0053812ac44024ea9a6cedeb70b5535868d191.tar.gz
ruby-fa0053812ac44024ea9a6cedeb70b5535868d191.tar.xz
ruby-fa0053812ac44024ea9a6cedeb70b5535868d191.zip
* gc.c (define_final): should not disclose NODE* to Ruby world.
[ruby-dev:23957] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 57c5752eb..eebe1a2c6 100644
--- a/eval.c
+++ b/eval.c
@@ -10971,10 +10971,13 @@ rb_thread_sleep(sec)
void
rb_thread_sleep_forever()
{
+ int thr_critical = rb_thread_critical;
if (curr_thread == curr_thread->next ||
curr_thread->status == THREAD_TO_KILL) {
+ rb_thread_critical = Qtrue;
TRAP_BEG;
pause();
+ rb_thread_critical = thr_critical;
TRAP_END;
return;
}