Briefly casting my eye at the test case, as a general point, remember that these termination APIs all complete asynchronously and I do not believe it has ever been safe or correct to call another while one is still pending - you are in undefined, edge case behaviour territory here.
Win32's TerminateThread/ExitThread, that in turn calls the native NtTerminateThread, only requests cancellation of a thread and returns immediately. One has to wait on a handle to the thread know that termination has completed, for which the synchronise standard access right is required. The same is true of Win32's TerminateProcess/ExitProcess, in turn NtTerminateProcess, where one waits instead on a handle to the process. Regards, Nick -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple