Changeset 19920 in vbox for trunk/src/VBox/Runtime/r0drv
- Timestamp:
- May 22, 2009 5:14:11 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 47617
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/os2/thread-r0drv-os2.cpp
r8245 r19920 74 74 } 75 75 76 77 RTDECL(bool) RTThreadPreemptIsEnabled(RTTHREAD hThread) 78 { 79 Assert(hThread == NIL_RTTHREAD); 80 return false; 81 } 82 83 84 RTDECL(bool) RTThreadPreemptIsPending(RTTHREAD hThread) 85 { 86 Assert(hThread == NIL_RTTHREAD); 87 88 union 89 { 90 RTFAR16 fp; 91 uint8_t fResched; 92 } u; 93 int rc = RTR0Os2DHQueryDOSVar(DHGETDOSV_YIELDFLAG, 0, &u.fp); 94 AssertReturn(rc == 0, false); 95 if (u.fResched) 96 return true; 97 98 /** @todo Check if DHGETDOSV_YIELDFLAG includes TCYIELDFLAG. */ 99 rc = RTR0Os2DHQueryDOSVar(DHGETDOSV_TCYIELDFLAG, 0, &u.fp); 100 AssertReturn(rc == 0, false); 101 if (u.fResched) 102 return true; 103 return false; 104 } 105 106 107 RTDECL(void) RTThreadPreemptDisable(PRTTHREADPREEMPTSTATE pState) 108 { 109 AssertPtr(pState); 110 Assert(pState->uchDummy != 42); 111 pState->uchDummy = 42; 112 /* Nothing to do here as OS/2 doesn't preempt kernel threads. */ 113 } 114 115 116 RTDECL(void) RTThreadPreemptRestore(PRTTHREADPREEMPTSTATE pState) 117 { 118 AssertPtr(pState); 119 Assert(pState->uchDummy == 42); 120 pState->uchDummy = 0; 121 } 122
Note:
See TracChangeset
for help on using the changeset viewer.