summaryrefslogtreecommitdiffstats
path: root/include/threads.h
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-12 09:14:46 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-12 09:14:46 +0000
commit8a9f232945f6ec241470513933baf6d72d256a06 (patch)
tree01c03798a9850c55f88a3e34db706a8786040482 /include/threads.h
parent62918b434f4f3c809505715d1d92c402110ab230 (diff)
downloadzabbix-8a9f232945f6ec241470513933baf6d72d256a06.tar.gz
zabbix-8a9f232945f6ec241470513933baf6d72d256a06.tar.xz
zabbix-8a9f232945f6ec241470513933baf6d72d256a06.zip
zabbix-1.2_dev integration
git-svn-id: svn://svn.zabbix.com/trunk@3038 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'include/threads.h')
-rwxr-xr-xinclude/threads.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/include/threads.h b/include/threads.h
new file mode 100755
index 00000000..6bed36de
--- /dev/null
+++ b/include/threads.h
@@ -0,0 +1,68 @@
+/*
+** ZABBIX
+** Copyright (C) 2000-2005 SIA Zabbix
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**/
+
+#ifndef ZABBIX_THREADS_H
+#define ZABBIX_THREADS_H
+
+#include "common.h"
+
+#if defined(WIN32)
+
+ #define ZBX_THREAD_ERROR (0)
+
+ #define ZBX_THREAD_HANDLE HANDLE
+
+ #define ZBX_THREAD_ENTRY_POINTER(pointer_name) \
+ unsigned (__stdcall * pointer_name )(void *)
+
+ #define ZBX_THREAD_ENTRY(entry_name, arg_name) \
+ unsigned __stdcall entry_name (void * arg_name)
+
+ #define zbx_tread_exit(status) \
+ _endthreadex((unsigned int)(status)); \
+ return ((unsigned)(status))
+
+ #define zbx_sleep(sec) Sleep(((DWORD)(sec))*((DWORD)1000))
+
+#else /* not WIN32 */
+
+ #define ZBX_THREAD_ERROR (-1)
+
+ #define ZBX_THREAD_HANDLE pid_t
+
+ #define ZBX_THREAD_ENTRY_POINTER(pointer_name) \
+ unsigned (* pointer_name )(void *)
+
+ #define ZBX_THREAD_ENTRY(entry_name, arg_name) \
+ unsigned entry_name (void * arg_name )
+
+ #define zbx_tread_exit(status) \
+ exit((int)(status)); \
+ return ((unsigned)(status))
+
+ #define zbx_sleep(sec) sleep((sec))
+
+#endif /* WIN32 */
+
+ZBX_THREAD_HANDLE zbx_thread_start(ZBX_THREAD_ENTRY_POINTER(handler), void *args);
+int zbx_thread_wait(ZBX_THREAD_HANDLE thread);
+/* zbx_tread_exit(status) // declared as define !!! */
+long int zbx_get_thread_id(void);
+
+#endif /* ZABBIX_THREADS_H */