Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Grigorjev <git-no-reply@zabbix.com>2006-07-12 13:14:46 +0400
committerEugene Grigorjev <git-no-reply@zabbix.com>2006-07-12 13:14:46 +0400
commit3c44ccda3b18ac5ed983c2bf163439bb70f5c1e5 (patch)
treed62c05933f09bebc50d4c9c9dfa61f657ab03e54 /include/threads.h
parent525dcd4757f8356cfad70e233cbc6e0dd29bc34e (diff)
zabbix-1.2_dev integration
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 00000000000..6bed36def71
--- /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 */