此方法是用于结束当前操作系统线程的回调函数。
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 - 对象应结束自己的线程。FALSE - 另一个对象应结束此线程。
在某些操作系统上,用于结束当前线程的调用与用于结束其他线程的调用不同。例如,在 Windows NT 上,您可以通过生成新的 OMNTCloseHandleEvent 来结束当前线程;要结束另一个线程,需要调用 TerminateThread。
具体操作系统适配器通过提供两个静态线程函数确保先结束其他线程:
getThreadEndClbk 操作将返回静态函数 endMyThread 或 endOtherThread 的地址。这两个函数的实现可能不同(如 Windows NT 上那样),也可能相同(如 pSOSystem 上那样,在此系统中这两个函数都调用 t_restart)。