#include "vthdr.h" /* Deleting a thread ** ** Written by Kiem-Phong Vo */ #if __STD_C int vtkill(Vthread_t* vt) #else int vtkill(vt) Vthread_t* vt; #endif { #if !vt_threaded return -1; #else int rv; if(!vt) return -1; if(!(vt->state&VT_RUNNING) ) { vt->error = 0; return -1; } #if _WIN32 if((rv = TerminateThread(vt->self, 0)) == FALSE) { vt->error = GetLastError(); rv = -1; } else rv = 0; #else if((rv = pthread_cancel(vt->self)) != 0) { vt->error = rv; rv = -1; } #endif if(rv == 0) vt->state &= ~VT_RUNNING; return rv; } #endif