diff options
| author | oehhar <harald.oehlmann@elmicron.de> | 2025-08-22 17:09:07 (GMT) |
|---|---|---|
| committer | oehhar <harald.oehlmann@elmicron.de> | 2025-08-22 17:09:07 (GMT) |
| commit | 9adf65a3f97cfaf5ba6d103d0b811fd6424c398e (patch) | |
| tree | 0c872cd5f5f16e59e0496fc89b4428698229e361 /unix/tclUnixThrd.c | |
| parent | 800194c7f4ddd68ec444f5a350867e546283e35c (diff) | |
| download | tcl-9adf65a3f97cfaf5ba6d103d0b811fd6424c398e.zip tcl-9adf65a3f97cfaf5ba6d103d0b811fd6424c398e.tar.gz tcl-9adf65a3f97cfaf5ba6d103d0b811fd6424c398e.tar.bz2 | |
[893f8cc5] tip509 nested mutex patch by Christian (thanks!)
Diffstat (limited to 'unix/tclUnixThrd.c')
| -rw-r--r-- | unix/tclUnixThrd.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c index ae22e46..04e1747 100644 --- a/unix/tclUnixThrd.c +++ b/unix/tclUnixThrd.c @@ -147,7 +147,13 @@ PCondWait( pthread_cond_t *pcondPtr, PMutex *pmutexPtr) { + int counter = pmutexPtr->counter; + + pmutexPtr->thread = 0; + pmutexPtr->counter = 0; pthread_cond_wait(pcondPtr, &pmutexPtr->mutex); + pmutexPtr->thread = pthread_self(); + pmutexPtr->counter = counter; } static void @@ -156,7 +162,13 @@ PCondTimedWait( PMutex *pmutexPtr, struct timespec *ptime) { + int counter = pmutexPtr->counter; + + pmutexPtr->thread = 0; + pmutexPtr->counter = 0; pthread_cond_timedwait(pcondPtr, &pmutexPtr->mutex, ptime); + pmutexPtr->thread = pthread_self(); + pmutexPtr->counter = counter; } #endif /* HAVE_PTHREAD_MUTEX_RECURSIVE */ |
