summaryrefslogtreecommitdiffstats
path: root/generic/tclEvent.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-09-08 12:43:49 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-09-08 12:43:49 (GMT)
commitd2c080833061d96d6d76d4d3873e15796cdd815c (patch)
tree68cbdfa02b9e8e347fddbd0df773613cf75f45d4 /generic/tclEvent.c
parente36a7a2e7fa1f1afb57f5e6b06917180e429cd72 (diff)
parent14f15edc7322b01a23ee0ae2201d96ae38212d09 (diff)
downloadtcl-d2c080833061d96d6d76d4d3873e15796cdd815c.zip
tcl-d2c080833061d96d6d76d4d3873e15796cdd815c.tar.gz
tcl-d2c080833061d96d6d76d4d3873e15796cdd815c.tar.bz2
merge 8.6.4
Diffstat (limited to 'generic/tclEvent.c')
-rw-r--r--generic/tclEvent.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 3985767..6ca22a6 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,7 +1317,7 @@ Tcl_FinalizeThread(void)
*
* Fix [Bug #571002]
*/
- TclFinalizeThreadData();
+ TclFinalizeThreadData(quick);
}
/*