X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FOSThreads.h;h=fd5064231311276bf605827a5ec7e415a6393bed;hb=f7bcfb698d9a895a168fd29eefd7dba8fd9be849;hp=32f147ae6f1157609e6c0f9ed12e95f05393d0ca;hpb=88b35c172f9434fd98b700f706074d142914a8bb;p=ghc-hetmet.git diff --git a/includes/OSThreads.h b/includes/OSThreads.h index 32f147a..fd50642 100644 --- a/includes/OSThreads.h +++ b/includes/OSThreads.h @@ -73,6 +73,8 @@ typedef pthread_key_t ThreadLocalKey; typedef HANDLE Condition; typedef DWORD OSThreadId; +// don't be tempted to use HANDLE as the OSThreadId: there can be +// many HANDLES to a given thread, so comparison would not work. typedef DWORD ThreadLocalKey; #define OSThreadProcAttr __stdcall @@ -146,6 +148,7 @@ typedef void OSThreadProcAttr OSThreadProc(void *); extern int createOSThread ( OSThreadId* tid, OSThreadProc *startProc, void *param); +extern rtsBool osThreadIsAlive ( OSThreadId id ); // // Condition Variables @@ -169,6 +172,7 @@ extern void closeMutex ( Mutex* pMut ); void newThreadLocalKey (ThreadLocalKey *key); void *getThreadLocalVar (ThreadLocalKey *key); void setThreadLocalVar (ThreadLocalKey *key, void *value); +void freeThreadLocalKey (ThreadLocalKey *key); #else