* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.

[ruby-talk: 227408]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagai 2006-12-01 07:43:05 +00:00
parent e546b71285
commit 938d00b54b
2 changed files with 33 additions and 13 deletions

View File

@ -1,3 +1,8 @@
Fri Dec 1 16:31:53 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.
[ruby-talk: 227408]
Sun Nov 26 16:36:46 2006 URABE Shyouhei <shyouhei@ruby-lang.org>
* version.h: addition of RUBY_PATCHLEVEL.

View File

@ -4,7 +4,7 @@
* Oct. 24, 1997 Y. Matsumoto
*/
#define TCLTKLIB_RELEASE_DATE "2006-07-10"
#define TCLTKLIB_RELEASE_DATE "2006-12-01"
#include "ruby.h"
#include "rubysig.h"
@ -5521,10 +5521,15 @@ call_queue_handler(evPtr, flags)
*(q->done) = -1;
/* back to caller */
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
DUMP2("back to caller (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
rb_thread_run(q->thread);
DUMP1("finish back to caller");
} else {
DUMP2("caller is dead (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
}
/* end of handler : remove it */
return 1;
@ -5837,10 +5842,15 @@ eval_queue_handler(evPtr, flags)
*(q->done) = -1;
/* back to caller */
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
DUMP2("back to caller (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
rb_thread_run(q->thread);
DUMP1("finish back to caller");
} else {
DUMP2("caller is dead (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
}
/* end of handler : remove it */
return 1;
@ -6912,10 +6922,15 @@ invoke_queue_handler(evPtr, flags)
*(q->done) = -1;
/* back to caller */
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
DUMP2("back to caller (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
rb_thread_run(q->thread);
DUMP1("finish back to caller");
} else {
DUMP2("caller is dead (caller thread:%lx)", q->thread);
DUMP2(" (current thread:%lx)", rb_thread_current());
}
/* end of handler : remove it */
return 1;