Changeset 63948 in vbox
- Timestamp:
- Sep 22, 2016 1:22:47 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 110834
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp
r62853 r63948 1464 1464 * All entries in the wake-up list gets signalled and moved to the woken-up 1465 1465 * list. 1466 * At least on Windows this function can be invoked concurrently from 1467 * different VCPUs. So, be thread-safe. 1466 1468 * 1467 1469 * @param pDevExt The device extension. … … 1478 1480 if (!pWait) 1479 1481 break; 1482 /* Prevent other threads from accessing pWait when spinlock is released. */ 1483 RTListNodeRemove(&pWait->ListNode); 1484 1480 1485 pWait->fPendingWakeUp = true; 1481 1486 RTSpinlockRelease(pDevExt->EventSpinlock); … … 1485 1490 1486 1491 RTSpinlockAcquire(pDevExt->EventSpinlock); 1492 Assert(pWait->ListNode.pNext == NULL && pWait->ListNode.pPrev == NULL); 1493 RTListAppend(&pDevExt->WokenUpList, &pWait->ListNode); 1487 1494 pWait->fPendingWakeUp = false; 1488 if (!pWait->fFreeMe) 1489 { 1490 RTListNodeRemove(&pWait->ListNode); 1491 RTListAppend(&pDevExt->WokenUpList, &pWait->ListNode); 1492 } 1495 if (RT_LIKELY(!pWait->fFreeMe)) 1496 { /* likely */ } 1493 1497 else 1494 1498 {
Note:
See TracChangeset
for help on using the changeset viewer.