summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsys
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-18 07:42:29 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-07-18 07:42:29 +0000
commit125d97877ec6846cd8be946eb786621e3debec81 (patch)
treea5c01f85e7485d707e0a864e9ea7d0ea4670e1ca /src/libs/zbxsys
parente5d67b4bf90b74467862df4555f7c061f7a13b47 (diff)
downloadzabbix-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-xsrc/libs/zbxsys/mutexs.c15
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 */