summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--eval.c9
-rw-r--r--version.h4
3 files changed, 12 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 514ffa2a5f..cbed08f168 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Aug 2 18:27:47 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_wait_fd): prohibit thread context switch
+ during compilation.
+
+ * eval.c (rb_cont_call): prohibit Continuation#call across threads.
+
Wed Aug 2 08:22:04 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
* gc.c (rb_gc): clear malloc_memories to zero, to avoid potential
diff --git a/eval.c b/eval.c
index f4b2328dde..352672b9db 100644
--- a/eval.c
+++ b/eval.c
@@ -478,6 +478,8 @@ rb_attr(klass, id, read, write, ex)
}
}
+extern int ruby_in_compile;
+
VALUE ruby_errinfo = Qnil;
extern NODE *ruby_eval_tree_begin;
extern NODE *ruby_eval_tree;
@@ -6892,7 +6894,6 @@ find_bad_fds(dst, src, max)
void
rb_thread_schedule()
{
- extern int ruby_in_compile;
rb_thread_t next; /* OK */
rb_thread_t th;
rb_thread_t curr;
@@ -6906,11 +6907,6 @@ rb_thread_schedule()
int n, max;
int need_select = 0;
- if (ruby_in_compile) {
- printf("switch during compilation.\n");
- abort();
- }
-
rb_thread_pending = 0;
if (curr_thread == curr_thread->next
&& curr_thread->status == THREAD_RUNNABLE)
@@ -7093,6 +7089,7 @@ rb_thread_wait_fd(fd)
int fd;
{
if (curr_thread == curr_thread->next) return;
+ if (ruby_in_compile) return;
curr_thread->status = THREAD_STOPPED;
curr_thread->fd = fd;
diff --git a/version.h b/version.h
index a1ab5b0046..356f641c02 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
#define RUBY_VERSION "1.5.5"
-#define RUBY_RELEASE_DATE "2000-08-01"
+#define RUBY_RELEASE_DATE "2000-08-02"
#define RUBY_VERSION_CODE 155
-#define RUBY_RELEASE_CODE 20000801
+#define RUBY_RELEASE_CODE 20000802