From 3c44ccda3b18ac5ed983c2bf163439bb70f5c1e5 Mon Sep 17 00:00:00 2001 From: Eugene Grigorjev Date: Wed, 12 Jul 2006 09:14:46 +0000 Subject: zabbix-1.2_dev integration --- include/threads.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 include/threads.h (limited to 'include/threads.h') 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 */ -- cgit v1.2.3