VirtualBox

Changeset 25125 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Dec 1, 2009 12:28:55 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
55503
Message:

NAT: backed out r55479.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNAT.cpp

    r25111 r25125  
    170170    /** event to wakeup the guest receive thread */
    171171    RTSEMEVENT              EventRecv;
    172     RTCRITSECT              csEventRecv;
    173172    /** event to wakeup the guest urgent receive thread */
    174173    RTSEMEVENT              EventUrgRecv;
    175     RTCRITSECT              csEventUrgRecv;
    176174    /** Receive Req queue (deliver packets to the guest) */
    177175    PRTREQQUEUE             pRecvReqQueue;
     
    233231{
    234232    PDRVNAT pThis = PDMINS_2_DATA(pDrvIns, PDRVNAT);
    235     int rc;
    236233
    237234    if (pThread->enmState == PDMTHREADSTATE_INITIALIZING)
     
    240237    while (pThread->enmState == PDMTHREADSTATE_RUNNING)
    241238    {
    242         rc = RTCritSectEnter(&pThis->csEventRecv);
    243         AssertRC(rc);
    244239        RTReqProcess(pThis->pRecvReqQueue, 0);
    245         rc = RTCritSectLeave(&pThis->csEventRecv);
    246         AssertRC(rc);
    247240        if (ASMAtomicReadU32(&pThis->cPkt) == 0)
    248         {
    249241            RTSemEventWait(pThis->EventRecv, RT_INDEFINITE_WAIT);
    250         }
    251242    }
    252243    return VINF_SUCCESS;
     
    260251    if (ASMAtomicReadU32(&pThis->cPkt) > 0)
    261252    {
    262         rc = RTCritSectEnter(&pThis->csEventRecv);
    263         AssertRC(rc);
    264253        rc = RTSemEventSignal(pThis->EventRecv);
    265         AssertRC(rc);
    266         rc = RTCritSectLeave(&pThis->csEventRecv);
    267254    }
    268255
     
    280267    while (pThread->enmState == PDMTHREADSTATE_RUNNING)
    281268    {
    282         int rc;
    283         rc = RTCritSectEnter(&pThis->csEventUrgRecv);
    284         AssertRC(rc);
    285269        RTReqProcess(pThis->pUrgRecvReqQueue, 0);
    286         rc = RTCritSectLeave(&pThis->csEventUrgRecv);
    287         AssertRC(rc);
    288270        if (ASMAtomicReadU32(&pThis->cUrgPkt) == 0)
    289271        {
    290             rc = RTSemEventWait(pThis->EventUrgRecv, RT_INDEFINITE_WAIT);
     272            int rc = RTSemEventWait(pThis->EventUrgRecv, RT_INDEFINITE_WAIT);
    291273            AssertRC(rc);
    292274        }
     
    299281    if (ASMAtomicReadU32(&pThis->cUrgPkt) > 0)
    300282    {
    301         int rc;
    302         rc = RTCritSectEnter(&pThis->csEventUrgRecv);
    303         AssertRC(rc);
    304         rc = RTSemEventSignal(pThis->EventUrgRecv);
    305         AssertRC(rc);
    306         rc = RTCritSectLeave(&pThis->csEventUrgRecv);
     283        int rc = RTSemEventSignal(pThis->EventUrgRecv);
    307284        AssertRC(rc);
    308285    }
     
    349326    while(ASMAtomicReadU32(&pThis->cUrgPkt) != 0)
    350327    {
    351         rc = RTCritSectLeave(&pThis->csEventRecv);
    352         AssertRC(rc);
    353328        rc = RTSemEventWait(pThis->EventRecv, RT_INDEFINITE_WAIT);
    354329        if (   RT_FAILURE(rc)
     
    356331                 || rc == VERR_INTERRUPTED))
    357332            goto done_unlocked;
    358         rc = RTCritSectEnter(&pThis->csEventRecv);
    359         AssertRC(rc);
    360333    }
    361334
     
    11711144            rc = RTSemEventCreate(&pThis->EventRecv);
    11721145            rc = RTSemEventCreate(&pThis->EventUrgRecv);
    1173             rc = RTCritSectInit(&pThis->csEventRecv);
    1174             rc = RTCritSectInit(&pThis->csEventUrgRecv);
    11751146            rc = RTCritSectInit(&pThis->csDevAccess);
    11761147            rc = PDMDrvHlpTMTimerCreate(pThis->pDrvIns, TMCLOCK_REAL/*enmClock*/, drvNATSlowTimer,
Note: See TracChangeset for help on using the changeset viewer.

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