summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2001-09-23 14:19:39 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2001-09-23 14:19:39 +0200
commit34e6eaad5834f9ec459ef4b925c79d00b0f4899d (patch)
tree0b52482e422f4dc5bc6d2e0ec7272e37a2c0cd19 /thread.c
parentf412897373b05ea78df93b56ab9d97c4bb522801 (diff)
downloadvdr-34e6eaad5834f9ec459ef4b925c79d00b0f4899d.tar.gz
vdr-34e6eaad5834f9ec459ef4b925c79d00b0f4899d.tar.bz2
Fixed setting the locking PID in cMutex
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/thread.c b/thread.c
index ec66440e..f4ba76a1 100644
--- a/thread.c
+++ b/thread.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: thread.c 1.12 2001/09/15 13:00:58 kls Exp $
+ * $Id: thread.c 1.13 2001/09/23 14:04:35 kls Exp $
*/
#include "thread.h"
@@ -67,16 +67,19 @@ cMutex::~cMutex()
void cMutex::Lock(void)
{
- if (getpid() != lockingPid || !locked)
+ if (getpid() != lockingPid || !locked) {
pthread_mutex_lock(&mutex);
- lockingPid = getpid();
+ lockingPid = getpid();
+ }
locked++;
}
void cMutex::Unlock(void)
{
- if (!--locked)
+ if (!--locked) {
+ lockingPid = 0;
pthread_mutex_unlock(&mutex);
+ }
}
// --- cThread ---------------------------------------------------------------