儲存庫 vbox 的更動 90416
- 時間撮記:
- 2021-7-29 下午09:10:03 (4 年 以前)
- svn:sync-xref-src-repo-rev:
- 146016
- 位置:
- trunk
- 檔案:
-
- 新增 1 筆資料
- 修改 6 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/include/iprt/err.h
r85580 r90416 380 380 /** Too many references to an object. */ 381 381 #define VERR_TOO_MANY_REFERENCES (-22423) 382 /** Returned by RTThreadQueryTerminationStatus to indicate that the thread is 383 * (or should be) terminating. */ 384 #define VINF_THREAD_IS_TERMINATING (22424) 382 385 /** @} */ 383 386 -
trunk/include/iprt/mangling.h
r90283 r90416 2510 2510 # define RTThreadPreemptIsPossible RT_MANGLER(RTThreadPreemptIsPossible) /* r0drv */ 2511 2511 # define RTThreadPreemptRestore RT_MANGLER(RTThreadPreemptRestore) /* r0drv */ 2512 # define RTThreadQueryTerminationStatus RT_MANGLER(RTThreadQueryTerminationStatus) /* r0drv */ 2512 2513 # define RTThreadSelf RT_MANGLER(RTThreadSelf) 2513 2514 # define RTThreadSelfAutoAdopt RT_MANGLER(RTThreadSelfAutoAdopt) -
trunk/include/iprt/thread.h
r90399 r90416 452 452 */ 453 453 RTDECL(bool) RTThreadIsSelfAlive(void); 454 455 #ifdef IN_RING0 456 /** 457 * Checks whether the specified thread is terminating. 458 * 459 * @retval VINF_SUCCESS if not terminating. 460 * @retval VINF_THREAD_IS_TERMINATING if terminating. 461 * @retval VERR_INVALID_HANDLE if hThread is not NIL_RTTHREAD. 462 * @retval VERR_NOT_SUPPORTED if the OS doesn't provide ways to check. 463 * 464 * @param hThread The thread to query about, NIL_RTTHREAD is an alias for 465 * the calling thread. Must be NIL_RTTHREAD for now. 466 * 467 * @note Not suppored on all OSes, so check for VERR_NOT_SUPPORTED. 468 */ 469 RTDECL(int) RTThreadQueryTerminationStatus(RTTHREAD hThread); 470 #endif 454 471 455 472 /** -
trunk/src/VBox/Runtime/Makefile.kmk
r90283 r90416 3182 3182 generic/RTAssertShouldPanic-generic.cpp \ 3183 3183 generic/RTLogWriteStdOut-stub-generic.cpp \ 3184 generic/RTMpGetCoreCount-generic.cpp \ 3185 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3184 3186 generic/RTTimerCreate-generic.cpp \ 3185 3187 generic/mppresent-generic-online.cpp \ 3186 generic/RTMpGetCoreCount-generic.cpp \3187 3188 generic/rtStrFormatKernelAddress-generic.cpp \ 3188 3189 nt/RTErrConvertFromNtStatus.cpp \ … … 3325 3326 generic/RTMpGetCoreCount-generic.cpp \ 3326 3327 generic/RTMpOnPair-generic.cpp \ 3328 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3327 3329 generic/RTTimerCreate-generic.cpp \ 3328 3330 generic/memsafer-generic.cpp \ … … 3392 3394 generic/RTMpGetSet-generic.cpp \ 3393 3395 generic/RTMpIsCpuOnline-generic.cpp \ 3396 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3394 3397 generic/RTTimerCreate-generic.cpp \ 3395 3398 generic/mppresent-generic.cpp \ … … 3513 3516 generic/RTAssertShouldPanic-generic.cpp \ 3514 3517 generic/RTLogWriteDebugger-generic.cpp \ 3518 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3515 3519 generic/RTTimerCreate-generic.cpp \ 3516 3520 generic/mppresent-generic.cpp \ … … 3544 3548 generic/RTLogWriteStdOut-stub-generic.cpp \ 3545 3549 generic/RTMpGetCoreCount-generic.cpp \ 3550 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3546 3551 generic/RTTimerCreate-generic.cpp \ 3547 3552 generic/mppresent-generic.cpp \ … … 3581 3586 generic/RTAssertShouldPanic-generic.cpp \ 3582 3587 generic/RTMpOnPair-generic.cpp \ 3588 generic/RTThreadQueryTerminationStatus-stub-generic.cpp \ 3583 3589 generic/RTTimerCreate-generic.cpp \ 3584 3590 generic/mppresent-generic.cpp \ -
trunk/src/VBox/Runtime/r0drv/freebsd/thread-r0drv-freebsd.c
r82968 r90416 185 185 } 186 186 187 188 RTDECL(int) RTThreadQueryTerminationStatus(RTTHREAD hThread) 189 { 190 RT_NOREF(hThread); 191 /** @todo implement. */ 192 return VERR_NOT_SUPPORTED; 193 } 194 -
trunk/src/VBox/Runtime/r0drv/linux/thread-r0drv-linux.c
r85698 r90416 233 233 RT_EXPORT_SYMBOL(RTThreadIsInInterrupt); 234 234 235 236 RTDECL(int) RTThreadQueryTerminationStatus(RTTHREAD hThread) 237 { 238 struct task_struct *pTask = current; 239 AssertReturn(hThread == NIL_RTTHREAD, VERR_NOT_SUPPORTED); 240 241 /* Check out pending signals. ASSUMES we can get away w/o locking 242 anything because we're only reading the data. */ 243 if (sigismember(&pTask->pending.signal, SIGKILL)) 244 return VINF_THREAD_IS_TERMINATING; 245 246 #if RTLNX_VER_MIN(2,5,34) 247 /* Check the pending signals shared with other threads in 248 the same process/group. ASSUME since we're alive that 249 the signal_struct won't be freed while we're looking 250 at it here... */ 251 { 252 # if RTLNX_VER_MIN(2,5,60) 253 struct signal_struct *pSignal = current->signal; 254 # else 255 struct signal_struct *pSignal = current->sig; 256 # endif 257 if ( pSignal 258 && sigismember(&pSignal->shared_pending.signal, SIGKILL)) 259 return VINF_THREAD_IS_TERMINATING; 260 } 261 #endif 262 263 return VINF_SUCCESS; 264 } 265 RT_EXPORT_SYMBOL(RTThreadQueryTerminationStatus); 266
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器