Changeset 15142
- Timestamp:
- Dec 16, 2011, 3:43:44 PM (13 years ago)
- File:
-
- 1 edited
-
trunk/source/lisp-kernel/thread_manager.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lisp-kernel/thread_manager.c
r15131 r15142 87 87 /* What if the suspend count is > 1 at this point ? I don't think 88 88 that that matters, but I'm not sure */ 89 pcontext->ContextFlags = CONTEXT_ FULL;89 pcontext->ContextFlags = CONTEXT_ALL; 90 90 rc = GetThreadContext(hthread, pcontext); 91 91 if (rc == 0) { … … 2020 2020 return false; 2021 2021 } 2022 pcontext->ContextFlags = CONTEXT_ FULL;2022 pcontext->ContextFlags = CONTEXT_ALL; 2023 2023 rc = GetThreadContext(hthread, pcontext); 2024 2024 if (rc == 0) { … … 2027 2027 where = (pc)(xpPC(pcontext)); 2028 2028 2029 if ((where >= restore_windows_context_start) &&2030 (where < restore_windows_context_end) &&2031 (tcr->valence != TCR_STATE_LISP)) {2032 Bug(NULL, "Forgot about this case ...");2033 }2034 2029 if (tcr->valence == TCR_STATE_LISP) { 2035 2030 if ((where >= restore_windows_context_start) && … … 2066 2061 ResumeThread(hthread); 2067 2062 SEM_WAIT_FOREVER(TCR_AUX(tcr)->suspend); 2068 pcontext = NULL; 2063 SuspendThread(hthread); 2064 /* The thread is either waiting for its resume semaphore to 2065 be signaled or is about to wait. Signal it now, while 2066 the thread's suspended. */ 2067 SEM_RAISE(TCR_AUX(tcr)->resume); 2068 pcontext->ContextFlags = CONTEXT_ALL; 2069 GetThreadContext(hthread, pcontext); 2069 2070 } 2070 2071 } … … 2193 2194 HANDLE hthread = (HANDLE)(TCR_AUX(tcr)->osid); 2194 2195 2195 2196 TCR_AUX(tcr)->suspend_context = NULL;2197 2196 if (context) { 2198 if (tcr->valence == TCR_STATE_LISP) { 2199 rc = SetThreadContext(hthread,context); 2200 if (! rc) { 2201 Bug(NULL,"SetThreadContext"); 2202 return false; 2203 } 2204 } 2197 context->ContextFlags = CONTEXT_ALL; 2198 TCR_AUX(tcr)->suspend_context = NULL; 2199 SetThreadContext(hthread,context); 2205 2200 rc = ResumeThread(hthread); 2206 2201 if (rc == -1) { 2207 Bug(NULL,"ResumeThread");2202 wperror("ResumeThread"); 2208 2203 return false; 2209 2204 } 2210 return true;2211 } else {2212 SEM_RAISE(TCR_AUX(tcr)->resume);2213 2205 return true; 2214 2206 }
Note:
See TracChangeset
for help on using the changeset viewer.
