diff options
author | das <das> | 2005-04-26 00:44:50 (GMT) |
---|---|---|
committer | das <das> | 2005-04-26 00:44:50 (GMT) |
commit | ec3f17501d816894810d4d4ea984e4f60e6217fe (patch) | |
tree | 870018fbbebc7227bc3dc1184a844d0917132e2c /generic/tclNotify.c | |
parent | a03466eb703f065ba168616a8322005b0555df91 (diff) | |
download | tcl-ec3f17501d816894810d4d4ea984e4f60e6217fe.zip tcl-ec3f17501d816894810d4d4ea984e4f60e6217fe.tar.gz tcl-ec3f17501d816894810d4d4ea984e4f60e6217fe.tar.bz2 |
* compat/string.h: fixed memchr() protoype for __APPLE__ so that we
build on Mac OS X 10.1 again.
* generic/tclNotify.c (TclFinalizeNotifier): fixed notifier not being
finalized in unthreaded core (was testing for notifier initialization in
current thread by checking thread id != 0 but thread id is always 0 in
untreaded core).
* win/tclWinNotify.c (Tcl_WaitForEvent):
* unix/tclUnixNotfy.c (Tcl_WaitForEvent): don't call ScaleTimeProc for
zero wait times (as specified in TIP 233).
* unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out NOTIFY_SRCS
from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS.
* unix/tcl.m4 (Darwin): added configure checks for recently added linker
flags -single_module and -search_paths_first to allow building with
older tools (and on Mac OS X 10.1), use -single_module in SHLIB_LD and
not just T{CL,K}_SHLIB_LD_EXTRAS, added unexporting from Tk of symbols
from libtclstub to avoid duplicate symbol warnings, added PLAT_SRCS
definition for Mac OS X, defined MODULE_SCOPE to __private_extern__.
(SC_MISSING_POSIX_HEADERS): added caching of dirent.h check.
* unix/configure: autoconf-2.59
Diffstat (limited to 'generic/tclNotify.c')
-rw-r--r-- | generic/tclNotify.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/generic/tclNotify.c b/generic/tclNotify.c index e5a438f..4a343aa 100644 --- a/generic/tclNotify.c +++ b/generic/tclNotify.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclNotify.c,v 1.16 2004/11/30 19:34:49 dgp Exp $ + * RCS: @(#) $Id: tclNotify.c,v 1.17 2005/04/26 00:45:01 das Exp $ */ #include "tclInt.h" @@ -67,6 +67,7 @@ typedef struct ThreadSpecificData { Tcl_ThreadId threadId; /* Thread that owns this notifier instance. */ ClientData clientData; /* Opaque handle for platform specific * notifier. */ + int initialized; /* 1 if notifier has been initialized. */ struct ThreadSpecificData *nextPtr; /* Next notifier in global list of notifiers. * Access is controlled by the listLock global @@ -124,6 +125,7 @@ TclInitNotifier() tsdPtr = TCL_TSD_INIT(&dataKey); tsdPtr->threadId = threadId; tsdPtr->clientData = tclStubs.tcl_InitNotifier(); + tsdPtr->initialized = 1; tsdPtr->nextPtr = firstNotifierPtr; firstNotifierPtr = tsdPtr; } @@ -163,7 +165,7 @@ TclFinalizeNotifier() ThreadSpecificData **prevPtrPtr; Tcl_Event *evPtr, *hold; - if (tsdPtr->threadId == (Tcl_ThreadId)0) { + if (!tsdPtr->initialized) { return; /* Notifier not initialized for the current thread */ } @@ -190,6 +192,7 @@ TclFinalizeNotifier() break; } } + tsdPtr->initialized = 0; Tcl_MutexUnlock(&listLock); } |