summaryrefslogtreecommitdiffstats
path: root/generic/tclEvent.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-06-18 19:58:45 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-06-18 19:58:45 (GMT)
commit0ea82c2d43e73fef5481d22ae75c9f71975eb715 (patch)
treef7f3ce61553efb1eb9de900ca3c17efb92ee670e /generic/tclEvent.c
parentd7b8af55e7a45674c4feb7b912bf4c7ef214855e (diff)
parent7679c0513ced1ce6009d339d8e43afdc3f0ad87a (diff)
downloadtcl-0ea82c2d43e73fef5481d22ae75c9f71975eb715.zip
tcl-0ea82c2d43e73fef5481d22ae75c9f71975eb715.tar.gz
tcl-0ea82c2d43e73fef5481d22ae75c9f71975eb715.tar.bz2
merge novem
Diffstat (limited to 'generic/tclEvent.c')
-rw-r--r--generic/tclEvent.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 24bb96f..95c69dd 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -119,6 +119,7 @@ static char * VwaitVarProc(ClientData clientData,
Tcl_Interp *interp, const char *name1,
const char *name2, int flags);
static void InvokeExitHandlers(void);
+static void FinalizeThread(int quick);
/*
*----------------------------------------------------------------------
@@ -983,7 +984,7 @@ Tcl_Exit(
* Tcl_Channels that may have data enqueued.
*/
- Tcl_FinalizeThread();
+ FinalizeThread(/* quick */ 1);
}
TclpExit(status);
Tcl_Panic("OS exit failed!");
@@ -1183,7 +1184,7 @@ Tcl_Finalize(void)
* This fixes the Tcl Bug #990552.
*/
- TclFinalizeThreadData();
+ TclFinalizeThreadData(/* quick */ 0);
/*
* Now we can free constants for conversions to/from double.
@@ -1269,6 +1270,13 @@ Tcl_Finalize(void)
void
Tcl_FinalizeThread(void)
{
+ FinalizeThread(/* quick */ 0);
+}
+
+void
+FinalizeThread(
+ int quick)
+{
ExitHandler *exitPtr;
ThreadSpecificData *tsdPtr;
@@ -1309,8 +1317,7 @@ Tcl_FinalizeThread(void)
*
* Fix [Bug #571002]
*/
-
- TclFinalizeThreadData();
+ TclFinalizeThreadData(quick);
}
/*