diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-12-19 14:37:15 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-12-19 14:37:15 +0000 |
| commit | d43cdad7158fb7bcf8d05da5030b4cb01397f784 (patch) | |
| tree | 5fe36d7066652da2ea1ebf88c0f4126f452ab7dd | |
| parent | 37f6e0af8e60d91853063262753b165cfd35a2f8 (diff) | |
| download | zabbix-d43cdad7158fb7bcf8d05da5030b4cb01397f784.tar.gz zabbix-d43cdad7158fb7bcf8d05da5030b4cb01397f784.tar.xz zabbix-d43cdad7158fb7bcf8d05da5030b4cb01397f784.zip | |
minor changes [compiled version]
git-svn-id: svn://svn.zabbix.com/trunk@3612 97f52cf1-0a1b-0410-bd0e-c28be96e8082
| -rw-r--r-- | configure.in | 2 | ||||
| -rw-r--r-- | frontends/php/include/db.inc.php | 17 | ||||
| -rw-r--r-- | frontends/php/include/forms.inc.php | 2 | ||||
| -rw-r--r-- | src/libs/zbxsys/mutexs.c | 34 | ||||
| -rw-r--r-- | src/zabbix_server/server.c | 20 |
5 files changed, 50 insertions, 25 deletions
diff --git a/configure.in b/configure.in index 88678614..2597a995 100644 --- a/configure.in +++ b/configure.in @@ -551,7 +551,7 @@ if test "$server" = "yes"; then AC_SUBST(ORACLE_LFLAGS) AC_SUBST(ORACLE_LIBS) - AC_MSG_CHECKING(for SQLite support) + AC_MSG_CHECKING(for SQLite3 support) AC_ARG_WITH(sqlite3, [ What DBMS do you want to use (please select only one): diff --git a/frontends/php/include/db.inc.php b/frontends/php/include/db.inc.php index 8f5953c4..89adc68c 100644 --- a/frontends/php/include/db.inc.php +++ b/frontends/php/include/db.inc.php @@ -90,7 +90,9 @@ global $ZBX_SEM_ID; if($ZBX_SEM_ID && function_exists('sem_acquire')) + { sem_acquire($ZBX_SEM_ID); + } } } @@ -105,6 +107,20 @@ } } + if(!function_exists('free_db_access')) + { + function free_db_access() + { + global $ZBX_SEM_ID; + + if($ZBX_SEM_ID && function_exists('sem_remove')) + sem_remove($ZBX_SEM_ID); + + $ZBX_SEM_ID = false; + } + } + + if(file_exists($DB_DATABASE)) { $DB = sqlite3_open($DB_DATABASE); @@ -146,6 +162,7 @@ case "SQLITE3": $result = true; sqlite3_close($DB); + free_db_access(); break; default: break; } diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php index 82955f50..65f8b6c8 100644 --- a/frontends/php/include/forms.inc.php +++ b/frontends/php/include/forms.inc.php @@ -2887,7 +2887,7 @@ new CButton('add_template',S_ADD, "return PopUp('popup.php?dstfrm=".$frmHost->GetName(). "&dstfld1=new_template&srctbl=templates&srcfld1=hostid&srcfld2=host". - url_param($templates,false,'existed_templates')."',450,450)l", + url_param($templates,false,'existed_templates')."',450,450)", 'T') )); diff --git a/src/libs/zbxsys/mutexs.c b/src/libs/zbxsys/mutexs.c index 56232237..f8719aa9 100644 --- a/src/libs/zbxsys/mutexs.c +++ b/src/libs/zbxsys/mutexs.c @@ -157,8 +157,6 @@ int zbx_mutex_lock(ZBX_MUTEX *mutex) { #if defined(_WINDOWS) - if(!*mutex) return ZBX_MUTEX_OK; - if(WaitForSingleObject(*mutex, INFINITE) != WAIT_OBJECT_0) { zbx_error("Error on mutex locking. [%s]", strerror_from_system(GetLastError())); @@ -169,8 +167,6 @@ int zbx_mutex_lock(ZBX_MUTEX *mutex) struct sembuf sem_lock = { *mutex, -1, 0 }; - if(!*mutex) return ZBX_MUTEX_OK; - if (-1 == (semop(ZBX_SEM_LIST_ID, &sem_lock, 1))) { zbx_error("Lock failed [%s]", strerror(errno)); @@ -214,8 +210,6 @@ int zbx_mutex_unlock(ZBX_MUTEX *mutex) struct sembuf sem_unlock = { *mutex, 1, 0}; - if(!*mutex) return ZBX_MUTEX_OK; - if ((semop(ZBX_SEM_LIST_ID, &sem_unlock, 1)) == -1) { zbx_error("Unlock failed [%s]", strerror(errno)); @@ -258,8 +252,6 @@ int zbx_mutex_destroy(ZBX_MUTEX *mutex) #else /* not _WINDOWS */ - if(!*mutex) return ZBX_MUTEX_OK; - semctl(ZBX_SEM_LIST_ID, 0, IPC_RMID, 0); #endif /* _WINDOWS */ @@ -330,10 +322,10 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) if( -1 == (sem_key = ftok(path_name, (int)'z') )) { - zbx_error("Can not create IPC key for path '%s', try to create for path '.' [%s]", path_name, strerror(errno)); + zbx_error("php_sem_get: Can not create IPC key for path '%s', try to create for path '.' [%s]", path_name, strerror(errno)); if( -1 == (sem_key = ftok(".", (int)'z') )) { - zbx_error("Can not create IPC key for path '.' [%s]", strerror(errno)); + zbx_error("php_sem_get: Can not create IPC key for path '.' [%s]", strerror(errno)); return ZBX_MUTEX_ERROR; } } @@ -346,7 +338,7 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) semid = semget(sem_key, 3, 0666 | IPC_CREAT); if (semid == -1) { - zbx_error("failed for key 0x%lx: %s", key, strerror(errno)); + zbx_error("php_sem_get: failed for key 0x%lx: %s", key, strerror(errno)); return ZBX_MUTEX_ERROR; } @@ -378,7 +370,7 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) sop[2].sem_flg = SEM_UNDO; while (semop(semid, sop, 3) == -1) { if (errno != EINTR) { - zbx_error("failed acquiring SYSVSEM_SETVAL for key 0x%lx: %s", key, strerror(errno)); + zbx_error("php_sem_get: failed acquiring SYSVSEM_SETVAL for key 0x%lx: %s", key, strerror(errno)); break; } } @@ -386,7 +378,7 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) /* Get the usage count. */ count = semctl(semid, SYSVSEM_USAGE, GETVAL, NULL); if (count == -1) { - zbx_error("failed for key 0x%lx: %s", key, strerror(errno)); + zbx_error("php_sem_get: failed for key 0x%lx: %s", key, strerror(errno)); } /* If we are the only user, then take this opportunity to set the max. */ @@ -396,7 +388,7 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) union semun semarg; semarg.val = max_acquire; if (semctl(semid, SYSVSEM_SEM, SETVAL, semarg) == -1) { - zbx_error("failed for key 0x%lx: %s", key, strerror(errno)); + zbx_error("php_sem_get: failed for key 0x%lx: %s", key, strerror(errno)); } } @@ -407,7 +399,7 @@ int php_sem_get(ZBX_MUTEX* sem_ptr, char* path_name) sop[0].sem_flg = SEM_UNDO; while (semop(semid, sop, 1) == -1) { if (errno != EINTR) { - zbx_error("failed releasing SYSVSEM_SETVAL for key 0x%lx: %s", key, strerror(errno)); + zbx_error("php_sem_get: failed releasing SYSVSEM_SETVAL for key 0x%lx: %s", key, strerror(errno)); break; } } @@ -423,6 +415,8 @@ static int php_sysvsem_semop(ZBX_MUTEX* sem_ptr, int acquire) assert(sem_ptr); + zbx_error("TMP!!! php_sysvsem_semop: %s semaphore (id %d)", acquire ? "acquire" : "release", *sem_ptr); + if(!*sem_ptr) return ZBX_MUTEX_OK; sop.sem_num = SYSVSEM_SEM; @@ -431,11 +425,11 @@ static int php_sysvsem_semop(ZBX_MUTEX* sem_ptr, int acquire) while (semop(*sem_ptr, &sop, 1) == -1) { if (errno != EINTR) { - zbx_error("failed to %s semaphore (id 0x%d): %s", acquire ? "acquire" : "release", *sem_ptr, strerror(errno)); + zbx_error("php_sysvsem_semop: failed to %s semaphore (id 0x%d): %s", acquire ? "acquire" : "release", *sem_ptr, strerror(errno)); return ZBX_MUTEX_ERROR; } } - + return ZBX_MUTEX_OK; } @@ -467,18 +461,18 @@ int php_sem_remove(ZBX_MUTEX* sem_ptr) sop.sem_flg = SEM_UNDO; if (semop(*sem_ptr, &sop, 1) == -1) { - zbx_error("failed in php_sem_remove for (id 0x%x): %s", *sem_ptr, strerror(errno)); + zbx_error("php_sem_remove: failed for (id 0x%x): %s", *sem_ptr, strerror(errno)); return ZBX_MUTEX_ERROR; } un.buf = &buf; if (semctl(*sem_ptr, 0, IPC_STAT, un) < 0) { - zbx_error("SysV semaphore (id 0x%x) does not (any longer) exist", *sem_ptr); + zbx_error("php_sem_remove: SysV semaphore (id 0x%x) does not (any longer) exist", *sem_ptr); return ZBX_MUTEX_ERROR; } if (semctl(*sem_ptr, 0, IPC_RMID, un) < 0) { - zbx_error("failed for SysV sempphore (id 0x%x): %s", *sem_ptr, strerror(errno)); + zbx_error("php_sem_remove: failed for SysV sempphore (id 0x%x): %s", *sem_ptr, strerror(errno)); return ZBX_MUTEX_ERROR; } diff --git a/src/zabbix_server/server.c b/src/zabbix_server/server.c index fa0ee9ae..39d965bd 100644 --- a/src/zabbix_server/server.c +++ b/src/zabbix_server/server.c @@ -329,8 +329,24 @@ int tcp_listen(const char *host, int port, socklen_t *addrlenp) void test() { + DB_RESULT result; + DB_ROW row; + int i=0; + printf("-= Test Started =-\n"); - + + DBconnect(); + for(i = 0; i<1000000; i++) + { + result = DBselect("select key_ from items"); + while(row = DBfetch(result)) + { + //printf("[%s]\n",row[0]); + } + DBfree_result(result); + } + DBclose(); + printf("\n-= Test completed =-\n"); } #endif /* TEST */ @@ -447,9 +463,7 @@ int main(int argc, char **argv) } zabbix_log( LOG_LEVEL_WARNING, "Starting zabbix_server. ZABBIX %s.", ZABBIX_VERSION); - DBconnect(); test(); - DBclose(); return 0; #endif /* TEST */ |
