VirtualBox

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


Ignore:
Timestamp:
Dec 4, 2024 1:23:29 PM (5 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166229
Message:

NAT: Slightly adjusted polling loop.

File:
1 edited

Legend:

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

    r107214 r107225  
    4040# define inet_aton(x, y) inet_pton(2, x, y)
    4141# define AF_INET6 23
    42 # define poll WSAPoll
    4342#endif
    4443
     
    749748        drvNAT_UpdateTimeout(&uTimeout, pThis);
    750749
     750#ifdef RT_OS_WINDOWS
     751        int cChangedFDs = WSAPoll(pThis->pNATState->polls, pThis->pNATState->nsock, uTimeout /* timeout */);
     752        /* Note: This must be called IMMEDIATELY after WSAPoll. */
     753        int error = WSAGetLastError();
     754#else
    751755        int cChangedFDs = poll(pThis->pNATState->polls, pThis->pNATState->nsock, uTimeout /* timeout */);
    752 #ifdef RT_OS_WINDOWS
    753         /* Note: This must be called IMMEDIATELY after poll/WSAPoll. */
    754         int error = WSAGetLastError();
    755756#endif
    756 
    757757        if (cChangedFDs < 0)
    758758        {
     
    778778        slirp_pollfds_poll(pThis->pNATState->pSlirp, cChangedFDs < 0, drvNAT_GetREventsCb /* SlirpGetREventsCb */, pThis /* opaque */);
    779779
    780 #ifdef RT_OS_WINDOWS
    781         if (pThis->pNATState->polls[0].revents & (POLLIN))
    782 #else
    783         if (pThis->pNATState->polls[0].revents & (POLLRDNORM|POLLPRI|POLLRDBAND))
    784 #endif
     780        if (pThis->pNATState->polls[0].revents & (POLLRDNORM|POLLPRI|POLLRDBAND))   /* POLLPRI won't be seen with WSAPoll. */
    785781        {
    786782            /* drain the pipe
     
    800796            ASMAtomicSubU64(&pThis->cbWakeupNotifs, cbRead);
    801797        }
    802 
    803798
    804799        /* process _all_ outstanding requests but don't wait */
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