diff options
| author | heinrich5991 <heinrich5991@gmail.com> | 2011-05-01 15:48:09 +0200 |
|---|---|---|
| committer | heinrich5991 <heinrich5991@gmail.com> | 2011-05-01 15:48:09 +0200 |
| commit | 0ea5641df42858833cb9c865e3dce21e8faa461d (patch) | |
| tree | eb8e7755ff2b0cc3602731ca8d924818434aef6e | |
| parent | b60dc13fbb9c40f8baaa29d6a057a0ab1decbbcc (diff) | |
| download | zcatch-0ea5641df42858833cb9c865e3dce21e8faa461d.tar.gz zcatch-0ea5641df42858833cb9c865e3dce21e8faa461d.zip | |
adding thread_detach to system.h and system.c
| -rw-r--r-- | src/base/system.c | 11 | ||||
| -rw-r--r-- | src/base/system.h | 10 |
2 files changed, 21 insertions, 0 deletions
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; |