Changeset 20116 in vbox for trunk/src/VBox/Runtime/r0drv
- Timestamp:
- May 28, 2009 1:06:04 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 47880
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/freebsd/semevent-r0drv-freebsd.c
r20107 r20116 174 174 175 175 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.). */ 176 185 rc = tsleep(pEventInt, /* block id */ 177 186 fInterruptible ? PZERO | PCATCH : PZERO, 178 "iprtev", 179 187 "iprtev", /* max 6 chars */ 188 cMillis == RT_INDEFINITE_WAIT 180 189 ? 0 181 190 : tvtohz(&tv)); … … 222 231 223 232 default: 224 AssertMsgFailed((" msleep -> %d\n", rc));233 AssertMsgFailed(("tsleep -> %d\n", rc)); 225 234 rc = VERR_GENERAL_FAILURE; 226 235 break;
Note:
See TracChangeset
for help on using the changeset viewer.