mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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:
parent
e546b71285
commit
938d00b54b
2 changed files with 33 additions and 13 deletions
|
@ -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>
|
Sun Nov 26 16:36:46 2006 URABE Shyouhei <shyouhei@ruby-lang.org>
|
||||||
|
|
||||||
* version.h: addition of RUBY_PATCHLEVEL.
|
* version.h: addition of RUBY_PATCHLEVEL.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Oct. 24, 1997 Y. Matsumoto
|
* Oct. 24, 1997 Y. Matsumoto
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TCLTKLIB_RELEASE_DATE "2006-07-10"
|
#define TCLTKLIB_RELEASE_DATE "2006-12-01"
|
||||||
|
|
||||||
#include "ruby.h"
|
#include "ruby.h"
|
||||||
#include "rubysig.h"
|
#include "rubysig.h"
|
||||||
|
@ -5521,10 +5521,15 @@ call_queue_handler(evPtr, flags)
|
||||||
*(q->done) = -1;
|
*(q->done) = -1;
|
||||||
|
|
||||||
/* back to caller */
|
/* back to caller */
|
||||||
|
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
|
||||||
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
||||||
DUMP2(" (current thread:%lx)", rb_thread_current());
|
DUMP2(" (current thread:%lx)", rb_thread_current());
|
||||||
rb_thread_run(q->thread);
|
rb_thread_run(q->thread);
|
||||||
DUMP1("finish back to caller");
|
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 */
|
/* end of handler : remove it */
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -5837,10 +5842,15 @@ eval_queue_handler(evPtr, flags)
|
||||||
*(q->done) = -1;
|
*(q->done) = -1;
|
||||||
|
|
||||||
/* back to caller */
|
/* back to caller */
|
||||||
|
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
|
||||||
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
||||||
DUMP2(" (current thread:%lx)", rb_thread_current());
|
DUMP2(" (current thread:%lx)", rb_thread_current());
|
||||||
rb_thread_run(q->thread);
|
rb_thread_run(q->thread);
|
||||||
DUMP1("finish back to caller");
|
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 */
|
/* end of handler : remove it */
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -6912,10 +6922,15 @@ invoke_queue_handler(evPtr, flags)
|
||||||
*(q->done) = -1;
|
*(q->done) = -1;
|
||||||
|
|
||||||
/* back to caller */
|
/* back to caller */
|
||||||
|
if (RTEST(rb_funcall(q->thread, ID_alive_p, 0, 0))) {
|
||||||
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
DUMP2("back to caller (caller thread:%lx)", q->thread);
|
||||||
DUMP2(" (current thread:%lx)", rb_thread_current());
|
DUMP2(" (current thread:%lx)", rb_thread_current());
|
||||||
rb_thread_run(q->thread);
|
rb_thread_run(q->thread);
|
||||||
DUMP1("finish back to caller");
|
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 */
|
/* end of handler : remove it */
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in a new issue