VirtualBox

Changeset 20116 in vbox for trunk/src/VBox/Runtime/r0drv


Ignore:
Timestamp:
May 28, 2009 1:06:04 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
47880
Message:

semevent-r0drv-freebsd.c: r=bird: two bugs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c

    r20107 r20116  
    174174
    175175        mtx_unlock_spin(&pEventInt->Mtx);
     176/** @todo r=bird: This doesn't handle cMillies == 0 correctly, it will assert
     177 *        and or sleep for ever according to r47861. (That's probably an old bug
     178 *        of my making.)
     179 *
     180 *        And it really looks like it's racing signalling on MP systems. (It
     181 *        *looks* like you leave the lock and then tries to go to sleep on a
     182 *        block id, someone spinning on the lock attempt to wake us up before we
     183 *        go to sleep. That's why the code was originally trying to use msleep
     184 *        here.). */
    176185        rc = tsleep(pEventInt,          /* block id */
    177186                    fInterruptible ? PZERO | PCATCH : PZERO,
    178                     "iprtev",
    179                       cMillis == RT_INDEFINITE_WAIT
     187                    "iprtev",           /* max 6 chars */
     188                    cMillis == RT_INDEFINITE_WAIT
    180189                    ? 0
    181190                    : tvtohz(&tv));
     
    222231
    223232            default:
    224                 AssertMsgFailed(("msleep -> %d\n", rc));
     233                AssertMsgFailed(("tsleep -> %d\n", rc));
    225234                rc = VERR_GENERAL_FAILURE;
    226235                break;
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