about summary refs log tree commit diff
path: root/src/base
diff options
context:
space:
mode:
authorheinrich5991 <heinrich5991@gmail.com>2011-05-01 15:48:09 +0200
committerheinrich5991 <heinrich5991@gmail.com>2011-05-01 15:48:09 +0200
commit0ea5641df42858833cb9c865e3dce21e8faa461d (patch)
treeeb8e7755ff2b0cc3602731ca8d924818434aef6e /src/base
parentb60dc13fbb9c40f8baaa29d6a057a0ab1decbbcc (diff)
downloadzcatch-0ea5641df42858833cb9c865e3dce21e8faa461d.tar.gz
zcatch-0ea5641df42858833cb9c865e3dce21e8faa461d.zip
adding thread_detach to system.h and system.c
Diffstat (limited to 'src/base')
-rw-r--r--src/base/system.c11
-rw-r--r--src/base/system.h10
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;