summaryrefslogtreecommitdiffstats
path: root/unix/tclUnixNotfy.c
diff options
context:
space:
mode:
authordas <das>2005-04-26 00:46:01 (GMT)
committerdas <das>2005-04-26 00:46:01 (GMT)
commit24fcde64c436af06b6824359ff50920a2933af27 (patch)
treed2c829948c33b0a374795c6a0e4bc7713a578d48 /unix/tclUnixNotfy.c
parente3d20a2783044861949b7a0230410548b1c59982 (diff)
downloadtcl-24fcde64c436af06b6824359ff50920a2933af27.zip
tcl-24fcde64c436af06b6824359ff50920a2933af27.tar.gz
tcl-24fcde64c436af06b6824359ff50920a2933af27.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). * unix/tclUnixNotfy.c (Tcl_WaitForEvent): sync with HEAD: only declare and use timeout var in unthreaded core. * unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out NOTIFY_SRCS from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS. * unix/configure.in: only run check for broken strstr implementation if AC_REPLACE_FUNCS(strstr) hasn't already determined that strstr is unavailable, otherwise compat/strstr.o will be used twice (resulting in duplicate symbol link errors on Mac OS X 10.1) * 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. (SC_MISSING_POSIX_HEADERS): added caching of dirent.h check. (SC_TCL_64BIT_FLAGS): fixed 'checking for off64_t' message output. * unix/configure: autoconf-2.13
Diffstat (limited to 'unix/tclUnixNotfy.c')
-rw-r--r--unix/tclUnixNotfy.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
index fc15eaf..7482646 100644
--- a/unix/tclUnixNotfy.c
+++ b/unix/tclUnixNotfy.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixNotfy.c,v 1.11.2.7 2004/12/07 00:07:54 hobbs Exp $
+ * RCS: @(#) $Id: tclUnixNotfy.c,v 1.11.2.8 2005/04/26 00:46:02 das Exp $
*/
#include "tclInt.h"
@@ -653,11 +653,15 @@ Tcl_WaitForEvent(timePtr)
{
FileHandler *filePtr;
FileHandlerEvent *fileEvPtr;
- struct timeval timeout, *timeoutPtr;
int mask;
#ifdef TCL_THREADS
int waitForFiles;
#else
+ /* Impl. notes: timeout & timeoutPtr are used if, and only if
+ * threads are not enabled. They are the arguments for the regular
+ * select() used when the core is not thread-enabled. */
+
+ struct timeval timeout, *timeoutPtr;
int numFound;
#endif
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
@@ -666,6 +670,7 @@ Tcl_WaitForEvent(timePtr)
return tclStubs.tcl_WaitForEvent(timePtr);
}
+#ifndef TCL_THREADS
/*
* Set up the timeout structure. Note that if there are no events to
* check for, we return with a negative result rather than blocking
@@ -676,7 +681,6 @@ Tcl_WaitForEvent(timePtr)
timeout.tv_sec = timePtr->sec;
timeout.tv_usec = timePtr->usec;
timeoutPtr = &timeout;
-#ifndef TCL_THREADS
} else if (tsdPtr->numFdBits == 0) {
/*
* If there are no threads, no timeout, and no fds registered,
@@ -687,10 +691,10 @@ Tcl_WaitForEvent(timePtr)
*/
return -1;
-#endif
} else {
timeoutPtr = NULL;
}
+#endif
#ifdef TCL_THREADS
/*