summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-11-06 07:22:39 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-11-06 07:22:39 +0000
commit818d6a1e4f145f3ff9a60933f71336a034c59536 (patch)
tree277366327de60bb4c1132c3117fe90a46cd3aa44 /eval.c
parent113423bdff9c888195c6e22949d5d7f849a05b04 (diff)
* eval.c (rb_load): allow interrupt during loaded program
evaluation. [ruby-dev:21834] * hash.c (rb_hash_fetch): always warn if default argument and a block are supplied at the same time. [ruby-dev:21842] * hash.c (env_fetch): ditto. * array.c (rb_ary_fetch): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/eval.c b/eval.c
index f8543a41f9..48b133ed76 100644
--- a/eval.c
+++ b/eval.c
@@ -5836,11 +5836,11 @@ rb_load(fname, wrap)
ruby_in_eval--;
node = ruby_eval_tree;
rb_thread_critical = critical;
+ ALLOW_INTS;
if (ruby_nerrs == 0) {
eval_node(self, node);
}
}
- ALLOW_INTS;
ruby_frame->last_func = last_func;
ruby_current_node = last_node;
ruby_sourcefile = 0;
@@ -9812,22 +9812,6 @@ rb_thread_trap_eval(cmd, sig)
VALUE cmd;
int sig;
{
-#if 0
- rb_thread_critical = 0;
- if (!rb_thread_dead(curr_thread)) {
- rb_thread_ready(curr_thread);
- rb_trap_eval(cmd, sig);
- return;
- }
- rb_thread_ready(main_thread);
- if (THREAD_SAVE_CONTEXT(curr_thread)) {
- return;
- }
- th_cmd = cmd;
- th_sig = sig;
- curr_thread = main_thread;
- rb_thread_restore_context(curr_thread, RESTORE_TRAP);
-#else
rb_thread_critical = 0;
if (!rb_thread_dead(curr_thread)) {
if (THREAD_SAVE_CONTEXT(curr_thread)) {
@@ -9838,7 +9822,6 @@ rb_thread_trap_eval(cmd, sig)
th_sig = sig;
curr_thread = main_thread;
rb_thread_restore_context(curr_thread, RESTORE_TRAP);
-#endif
}
static VALUE