summaryrefslogtreecommitdiffstats
path: root/unix/tclUnixThrd.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2006-12-19 16:14:40 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2006-12-19 16:14:40 (GMT)
commit8a2ea780c61e56cc4a7e757c880df05992930c5a (patch)
treef9ee31d9f36e04c991b872e11920c35c65af3cd6 /unix/tclUnixThrd.c
parentbddcdb160a30d1b32f7443b82612ee135824893e (diff)
downloadtcl-8a2ea780c61e56cc4a7e757c880df05992930c5a.zip
tcl-8a2ea780c61e56cc4a7e757c880df05992930c5a.tar.gz
tcl-8a2ea780c61e56cc4a7e757c880df05992930c5a.tar.bz2
Fix [Bug 1618838]
Diffstat (limited to 'unix/tclUnixThrd.c')
-rw-r--r--unix/tclUnixThrd.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c
index 8fc8c63..8a48c50 100644
--- a/unix/tclUnixThrd.c
+++ b/unix/tclUnixThrd.c
@@ -440,7 +440,8 @@ Tcl_Mutex *
Tcl_GetAllocMutex(void)
{
#ifdef TCL_THREADS
- return (Tcl_Mutex *)&allocLockPtr;
+ pthread_mutex_t **allocLockPtrPtr = &allocLockPtr;
+ return (Tcl_Mutex *) allocLockPtrPtr;
#else
return NULL;
#endif
@@ -742,12 +743,14 @@ Tcl_Mutex *
TclpNewAllocMutex(void)
{
struct allocMutex *lockPtr;
+ register pthread_mutex_t *plockPtr;
lockPtr = malloc(sizeof(struct allocMutex));
if (lockPtr == NULL) {
Tcl_Panic("could not allocate lock");
}
- lockPtr->tlock = (Tcl_Mutex) &lockPtr->plock;
+ plockPtr = &lockPtr->plock;
+ lockPtr->tlock = (Tcl_Mutex) plockPtr;
pthread_mutex_init(&lockPtr->plock, NULL);
return &lockPtr->tlock;
}