diff options
| author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-16 07:24:08 +0000 |
|---|---|---|
| committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-16 07:24:08 +0000 |
| commit | 86bd9f0ee230b37c911d8ce0e7ca49654b4993aa (patch) | |
| tree | 812e8aeb356b3118b293db3b7b121bfaacd686a0 | |
| parent | 36581da692c6b8687a4b4ecb26ce0e9bdbec3dfd (diff) | |
* ext/tk/lib/tcltklib.c: sometimes freeze when receive Interrupt signal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/tk/tcltklib.c | 7 |
2 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Fri May 16 16:22:40 2008 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> + + * ext/tk/tcltklib.c: sometimes freeze when receive Interrupt signal. + + Fri May 16 14:54:56 2008 Tanaka Akira <akr@fsij.org> * Makefile.in (update-rubyspec): move rubyspec to srcdir. diff --git a/ext/tk/tcltklib.c b/ext/tk/tcltklib.c index 0ad4be8c5f..680b8da984 100644 --- a/ext/tk/tcltklib.c +++ b/ext/tk/tcltklib.c @@ -4,7 +4,7 @@ * Oct. 24, 1997 Y. Matsumoto */ -#define TCLTKLIB_RELEASE_DATE "2008-05-09" +#define TCLTKLIB_RELEASE_DATE "2008-05-16" #include "ruby.h" @@ -3153,6 +3153,7 @@ ip_ruby_cmd(clientData, interp, argc, argv) str, "'", (char *)NULL); rbtk_pending_exception = rb_exc_new2(rb_eArgError, Tcl_GetStringResult(interp)); + if (old_gc == Qfalse) rb_gc_enable(); return TCL_ERROR; #endif } @@ -5155,6 +5156,8 @@ ip_finalize(ip) Tcl_CreateCommand(ip, "ruby_cmd", ip_null_proc, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL); #endif + rb_thread_critical = thr_crit_bup; + return; } /* delete root widget */ @@ -5162,7 +5165,7 @@ ip_finalize(ip) DUMP1("check `destroy'"); if (Tcl_GetCommandInfo(ip, "destroy", &info)) { DUMP1("call `destroy'"); - Tcl_GlobalEval(ip, "destroy ."); + Tcl_GlobalEval(ip, "catch {destroy .}"); } #endif #if 1 |
