summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-16 07:24:08 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-16 07:24:08 +0000
commit86bd9f0ee230b37c911d8ce0e7ca49654b4993aa (patch)
tree812e8aeb356b3118b293db3b7b121bfaacd686a0
parent36581da692c6b8687a4b4ecb26ce0e9bdbec3dfd (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--ChangeLog5
-rw-r--r--ext/tk/tcltklib.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 10660d8550..374b459b10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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