diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-18 07:42:29 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-18 07:42:29 +0000 |
| commit | 125d97877ec6846cd8be946eb786621e3debec81 (patch) | |
| tree | a5c01f85e7485d707e0a864e9ea7d0ea4670e1ca /src/libs/zbxsys | |
| parent | e5d67b4bf90b74467862df4555f7c061f7a13b47 (diff) | |
| download | zabbix-125d97877ec6846cd8be946eb786621e3debec81.tar.gz zabbix-125d97877ec6846cd8be946eb786621e3debec81.tar.xz zabbix-125d97877ec6846cd8be946eb786621e3debec81.zip | |
- added support of "ayatem.swap.out" key for Linux with kernel 2.4 (Eugene)
- added support of "ayatem.swap.in" key for Linux with kernel 2.4 (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3056 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsys')
| -rwxr-xr-x | src/libs/zbxsys/mutexs.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/zbxsys/mutexs.c b/src/libs/zbxsys/mutexs.c index 67d37db6..06ad2cb8 100755 --- a/src/libs/zbxsys/mutexs.c +++ b/src/libs/zbxsys/mutexs.c @@ -119,10 +119,11 @@ int zbx_mutex_create(ZBX_MUTEX *mutex, char *name) int zbx_mutex_lock(ZBX_MUTEX *mutex) { - if(!*mutex) return ZBX_MUTEX_OK; #if defined(WIN32) + if(!*mutex) return ZBX_MUTEX_OK; + if(WaitForSingleObject(*mutex, INFINITE) != WAIT_OBJECT_0) { zbx_error("Error on mutex locking. [%s]", strerror_from_system(GetLastError())); @@ -133,6 +134,8 @@ int zbx_mutex_lock(ZBX_MUTEX *mutex) struct sembuf sem_lock = { 0, -1, 0 }; + if(!*mutex) return ZBX_MUTEX_OK; + if (-1 == (semop(*mutex, &sem_lock, 1))) { zbx_error("Lock failed [%s]", strerror(errno)); @@ -163,10 +166,11 @@ int zbx_mutex_lock(ZBX_MUTEX *mutex) int zbx_mutex_unlock(ZBX_MUTEX *mutex) { - if(!*mutex) return ZBX_MUTEX_OK; #if defined(WIN32) + if(!*mutex) return ZBX_MUTEX_OK; + if(ReleaseMutex(*mutex) == 0) { zbx_error("Error on mutex UNlocking. [%s]", strerror_from_system(GetLastError())); @@ -177,6 +181,8 @@ int zbx_mutex_unlock(ZBX_MUTEX *mutex) struct sembuf sem_unlock = { 0, 1, 0}; + if(!*mutex) return ZBX_MUTEX_OK; + if ((semop(*mutex, &sem_unlock, 1)) == -1) { zbx_error("Unlock failed [%s]", strerror(errno)); @@ -206,10 +212,11 @@ int zbx_mutex_unlock(ZBX_MUTEX *mutex) int zbx_mutex_destroy(ZBX_MUTEX *mutex) { - if(!*mutex) return ZBX_MUTEX_OK; #if defined(WIN32) + if(!*mutex) return ZBX_MUTEX_OK; + if(CloseHandle(*mutex) == 0) { zbx_error("Error on mutex destroying. [%s]", strerror_from_system(GetLastError())); @@ -218,6 +225,8 @@ int zbx_mutex_destroy(ZBX_MUTEX *mutex) #else /* not WIN32 */ + if(!*mutex) return ZBX_MUTEX_OK; + semctl(*mutex, 0, IPC_RMID, 0); #endif /* WIN32 */ |
