VirtualBox

Changeset 5165 in vbox for trunk/src/VBox/Runtime/r0drv/nt


Ignore:
Timestamp:
Oct 5, 2007 1:32:50 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
25064
Message:

RTSemEventWaitNoResume

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/nt/semaphore-r0drv-nt.cpp

    r4071 r5165  
    141141
    142142
    143 RTDECL(int)  RTSemEventWait(RTSEMEVENT EventSem, unsigned cMillies)
     143static int rtSemEventWait(RTSEMEVENT EventSem, unsigned cMillies, bool fInterruptible)
    144144{
    145145    /*
     
    161161    NTSTATUS rcNt;
    162162    if (cMillies == RT_INDEFINITE_WAIT)
    163         rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, TRUE, NULL);
     163        rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, fInterruptible, NULL);
    164164    else
    165165    {
    166166        LARGE_INTEGER Timeout;
    167167        Timeout.QuadPart = -(int64_t)cMillies * 10000;
    168         rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, TRUE, &Timeout);
     168        rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, fInterruptible, &Timeout);
    169169    }
    170170    switch (rcNt)
     
    175175            return VERR_SEM_DESTROYED;
    176176        case STATUS_ALERTED:
    177             return VERR_INTERRUPTED; /** @todo VERR_INTERRUPTED isn't correct anylonger. please fix r0drv stuff! */
     177            return VERR_INTERRUPTED;
    178178        case STATUS_USER_APC:
    179             return VERR_INTERRUPTED; /** @todo VERR_INTERRUPTED isn't correct anylonger. please fix r0drv stuff! */
     179            return VERR_INTERRUPTED;
    180180        case STATUS_TIMEOUT:
    181181            return VERR_TIMEOUT;
     
    187187}
    188188
     189
     190RTDECL(int)  RTSemEventWait(RTSEMEVENT EventSem, unsigned cMillies)
     191{
     192    return rtSemEventWait(EventSem, cMillies, false /* fInterruptible */);
     193}
     194
     195
     196RTDECL(int)  RTSemEventWaitNoResume(RTSEMEVENT EventSem, unsigned cMillies)
     197{
     198    return rtSemEventWait(EventSem, cMillies, true /* fInterruptible */);
     199}
    189200
    190201
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