summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-29 08:17:19 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-29 08:17:19 (GMT)
commita401663e7ef33d1bf2c2a2590ed3945c4c864760 (patch)
treec3f39f73eee4a73a274f62206d925afe860ed737
parent56c6fe5e8cce063cb7e0dec1a5035ad8e4fa783e (diff)
parent5873d26c7268ee5af9f31c126c64b4350736c458 (diff)
downloadtcl-a401663e7ef33d1bf2c2a2590ed3945c4c864760.zip
tcl-a401663e7ef33d1bf2c2a2590ed3945c4c864760.tar.gz
tcl-a401663e7ef33d1bf2c2a2590ed3945c4c864760.tar.bz2
Workaround for [414d10346b]: tcl 8.5.15/8.6.1(threaded build) hangs in exec on HP-UX
-rw-r--r--unix/tclUnixNotfy.c6
-rw-r--r--unix/tclUnixTest.c5
2 files changed, 5 insertions, 6 deletions
diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
index 254614f..b234667 100644
--- a/unix/tclUnixNotfy.c
+++ b/unix/tclUnixNotfy.c
@@ -194,7 +194,7 @@ static Tcl_ThreadId notifierThread;
#ifdef TCL_THREADS
static void NotifierThreadProc(ClientData clientData);
-#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__)
+#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__) && !defined(__hpux)
static int atForkInit = 0;
static void AtForkPrepare(void);
static void AtForkParent(void);
@@ -290,7 +290,7 @@ Tcl_InitNotifier(void)
*/
Tcl_MutexLock(&notifierMutex);
-#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__)
+#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__) && !defined(__hpux)
/*
* Install pthread_atfork handlers to reinitialize the notifier in the
* child of a fork.
@@ -1313,7 +1313,7 @@ NotifierThreadProc(
TclpThreadExit(0);
}
-#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__)
+#if defined(HAVE_PTHREAD_ATFORK) && !defined(__APPLE__) && !defined(__hpux)
/*
*----------------------------------------------------------------------
*
diff --git a/unix/tclUnixTest.c b/unix/tclUnixTest.c
index 21a7bad..4b0f369 100644
--- a/unix/tclUnixTest.c
+++ b/unix/tclUnixTest.c
@@ -566,12 +566,11 @@ TestforkObjCmd(
"Cannot fork", NULL);
return TCL_ERROR;
}
-#if !defined(HAVE_PTHREAD_ATFORK)
- /* Only needed when pthread_atfork is not present. */
+ /* Only needed when pthread_atfork is not present,
+ * should not hurt otherwise. */
if (pid==0) {
Tcl_InitNotifier();
}
-#endif
Tcl_SetObjResult(interp, Tcl_NewIntObj(pid));
return TCL_OK;
}