From 0ea5641df42858833cb9c865e3dce21e8faa461d Mon Sep 17 00:00:00 2001 From: heinrich5991 Date: Sun, 1 May 2011 15:48:09 +0200 Subject: adding thread_detach to system.h and system.c --- src/base/system.c | 11 +++++++++++ src/base/system.h | 10 ++++++++++ 2 files changed, 21 insertions(+) (limited to 'src') diff --git a/src/base/system.c b/src/base/system.c index 9cc7f690..2f4c5c7b 100644 --- a/src/base/system.c +++ b/src/base/system.c @@ -408,6 +408,17 @@ void thread_sleep(int milliseconds) #endif } +void thread_detach(void *thread) +{ +#if defined(CONF_FAMILY_UNIX) + pthread_detach((pthread_t)(thread)); +#elif defined(CONF_FAMILY_WINDOWS) + CloseHandle(thread); +#else + #error not implemented +#endif +} + diff --git a/src/base/system.h b/src/base/system.h index a486b89d..aab71bff 100644 --- a/src/base/system.h +++ b/src/base/system.h @@ -367,6 +367,16 @@ void thread_destroy(void *thread); */ void thread_yield(); +/* + Function: thread_detach + Puts the thread in the detached thread, guaranteeing that + resources of the thread will be freed immediately when the + thread terminates. + + Parameters: + thread - Thread to detach +*/ +void thread_detach(void *thread); /* Group: Locks */ typedef void* LOCK; -- cgit 1.4.1