diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-12 09:14:46 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-12 09:14:46 +0000 |
commit | 8a9f232945f6ec241470513933baf6d72d256a06 (patch) | |
tree | 01c03798a9850c55f88a3e34db706a8786040482 /include/threads.h | |
parent | 62918b434f4f3c809505715d1d92c402110ab230 (diff) | |
download | zabbix-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-x | include/threads.h | 68 |
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 */ |