VirtualBox

Ignore:
Timestamp:
Jul 7, 2010 12:14:18 AM (14 years ago)
Author:
vboxsync
Message:

wddm/3d: fix command pipe

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVdma.cpp

    r30532 r30686  
    137137    do
    138138    {
     139        bool bListEmpty = true;
    139140        KeAcquireSpinLock(&pPipe->SinchLock, &OldIrql);
    140141        Assert(pPipe->enmState == VBOXVDMAPIPE_STATE_OPENNED
     
    145146        {
    146147            vboxVideoLeDetach(&pPipe->CmdListHead, pDetachHead);
    147             pPipe->bNeedNotify = false;
     148            bListEmpty = IsListEmpty(pDetachHead);
     149            pPipe->bNeedNotify = bListEmpty;
    148150        }
    149151        else
     
    156158        KeReleaseSpinLock(&pPipe->SinchLock, OldIrql);
    157159
    158         if (!IsListEmpty(pDetachHead))
     160        if (!bListEmpty)
    159161        {
    160162            Assert(Status == STATUS_SUCCESS);
     
    164166        if (enmState == VBOXVDMAPIPE_STATE_OPENNED)
    165167        {
    166             KeAcquireSpinLock(&pPipe->SinchLock, &OldIrql);
    167             pPipe->bNeedNotify = true;
    168             KeReleaseSpinLock(&pPipe->SinchLock, OldIrql);
    169 
    170168            Status = KeWaitForSingleObject(&pPipe->Event, Executive, KernelMode, FALSE, NULL /* PLARGE_INTEGER Timeout */);
    171169            Assert(Status == STATUS_SUCCESS);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette