]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
lib/lock: put back the last piece
authorVMware, Inc <>
Wed, 21 Dec 2011 23:59:26 +0000 (15:59 -0800)
committerMarcelo Vanzin <mvanzin@vmware.com>
Wed, 21 Dec 2011 23:59:26 +0000 (15:59 -0800)
Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
open-vm-tools/lib/lock/ulExcl.c
open-vm-tools/lib/lock/ulInt.h
open-vm-tools/lib/lock/ulRec.c

index fff114c249c127691e5e7e33b955c1d8b8530e41..e4dcc2d7f0067a9a463211b13738e57dce9303df 100644 (file)
@@ -143,7 +143,9 @@ MXUserDumpExclLock(MXUserHeader *header)  // IN:
 
    Warning("\tcount %u\n", lock->recursiveLock.referenceCount);
 
-   Warning("\taddress of owner data 0x%p\n",
+   Warning("\tVThreadID %u\n", lock->recursiveLock.vmwThreadID);
+
+   Warning("\taddress of native owner data 0x%p\n",
            &lock->recursiveLock.nativeThreadID);
 
    if (stats && (stats->holder != NULL)) {
index 0e620b576dba08a66a8bdbf4a70eb793b2bbcd7e..30f6e1d1dea1de7b4586394240bc10420457b933 100644 (file)
@@ -60,6 +60,7 @@ typedef struct {
 
    int              referenceCount;   // Acquisition count
    MXUserThreadID   nativeThreadID;   // Native thread ID
+   VThreadID        vmwThreadID;      // VMW thread ID
 } MXRecLock;
 
 
@@ -124,6 +125,7 @@ static INLINE void
 MXRecLockSetNoOwner(MXRecLock *lock)  // IN:
 {
    lock->nativeThreadID = MXUSER_INVALID_OWNER;
+   lock->vmwThreadID = VTHREAD_INVALID_ID;
 }
 
 
@@ -131,6 +133,7 @@ static INLINE void
 MXRecLockSetOwner(MXRecLock *lock)  // IN/OUT:
 {
    lock->nativeThreadID = GetCurrentThreadId();
+   lock->vmwThreadID = VThread_CurID();
 }
 
 
@@ -184,6 +187,7 @@ MXRecLockSetNoOwner(MXRecLock *lock)  // IN/OUT:
 {
    /* a hack but it works portably */
    memset((void *) &lock->nativeThreadID, 0xFF, sizeof(lock->nativeThreadID));
+   lock->vmwThreadID = VTHREAD_INVALID_ID;
 }
 
 
@@ -191,6 +195,7 @@ static INLINE void
 MXRecLockSetOwner(MXRecLock *lock)  // IN:
 {
    lock->nativeThreadID = pthread_self();
+   lock->vmwThreadID = VThread_CurID();
 }
 
 
index 51bdd4ad31dc80d223d3aff5211c82db66de5b57..112cda170ec9d4849ea5ca5d916d846e282833dc 100644 (file)
@@ -160,7 +160,9 @@ MXUserDumpRecLock(MXUserHeader *header)  // IN:
 
       Warning("\tcount %u\n", lock->recursiveLock.referenceCount);
 
-      Warning("\taddress of owner data 0x%p\n",
+      Warning("\tVThreadID %u\n", lock->recursiveLock.vmwThreadID);
+
+      Warning("\taddress of native owner data 0x%p\n",
               &lock->recursiveLock.nativeThreadID);
 
       if (stats && (stats->holder != NULL)) {