此方法是結束現行作業系統執行緒的回呼函數。
Public
virtual void getThreadEndClbk(
OMOSThreadEndCallBack * clb_p, void ** arg1_p,
OMBoolean onExecuteThread) = 0;
clb_p
指向結束執行緒之回呼函數的指標。
這可以是 endMyThread 或 endOtherThread。函數指標是 OMOSThreadEndCallBack 類型,其在 OMOSThread 中定義,如下所示:
typedef
void (*OMOSThreadEndCallBack)(void *);
arg1_p
回呼函數的引數。
onExecuteThread
將此參數設為下列其中一個布林值:
TRUE—物件應該結束 (kill) 其自己的執行緒。
TRUE—其他物件應該結束 (kill) 執行緒。
在部分作業系統上,相對於結束 (kill) 其他執行緒,有不同的結束 (kill) 現行執行緒的呼叫。 例如,在 Windows NT 上,您透過產生新的 OMNTCloseHandleEvent,來結束 (kill) 現行執行緒;若要結束 (kill) 其他執行緒,請呼叫 TerminateThread。
具體作業系統配接器會提供兩個靜態執行緒函數,以確保先結束 (kill) 其他執行緒:
getThreadEndClbk 作業會傳回靜態函數 endMyThread 或 endOtherThread 的位址。 這兩個函數的實作方式可以不同(在 Windows NT 上),也可以相同(在 pSOSystem 上),但這兩個函數都呼叫 t_restart。