switch_cache_db_native_handle_t native_handle;
time_t last_used;
switch_mutex_t *mutex;
- switch_mutex_t *io_mutex;
switch_memory_pool_t *pool;
int32_t flags;
unsigned long hash;
switch_thread_t *db_thread;
int db_thread_running;
switch_bool_t manage;
- switch_mutex_t *io_mutex;
switch_mutex_t *dbh_mutex;
switch_mutex_t *ctl_mutex;
switch_cache_db_handle_t *handle_pool;
switch_mutex_lock(sql_manager.dbh_mutex);
(*dbh)->last_used = switch_epoch_time_now(NULL);
- (*dbh)->io_mutex = NULL;
-
if ((*dbh)->use_count) {
--(*dbh)->use_count;
}
char *errmsg = NULL;
char *tmp = NULL;
char *type = NULL;
- switch_mutex_t *io_mutex = dbh->io_mutex;
-
- if (io_mutex) switch_mutex_lock(io_mutex);
if (err) {
*err = NULL;
}
}
-
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
}
SWITCH_DECLARE(switch_status_t) switch_cache_db_execute_sql(switch_cache_db_handle_t *dbh, char *sql, char **err)
{
switch_status_t status = SWITCH_STATUS_FALSE;
- switch_mutex_t *io_mutex = dbh->io_mutex;
-
- if (io_mutex) switch_mutex_lock(io_mutex);
switch (dbh->type) {
default:
break;
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
-
}
SWITCH_DECLARE(char *) switch_cache_db_execute_sql2str(switch_cache_db_handle_t *dbh, char *sql, char *str, size_t len, char **err)
{
switch_status_t status = SWITCH_STATUS_FALSE;
- switch_mutex_t *io_mutex = dbh->io_mutex;
-
- if (io_mutex) switch_mutex_lock(io_mutex);
memset(str, 0, len);
end:
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status == SWITCH_STATUS_SUCCESS ? str : NULL;
}
char *errmsg = NULL;
switch_status_t status = SWITCH_STATUS_FALSE;
uint8_t forever = 0;
- switch_mutex_t *io_mutex = dbh->io_mutex;
if (!retries) {
forever = 1;
while (retries > 0) {
- if (io_mutex) switch_mutex_lock(io_mutex);
switch_cache_db_execute_sql_real(dbh, sql, &errmsg);
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
if (errmsg) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "SQL ERR [%s]\n", errmsg);
uint8_t forever = 0;
unsigned begin_retries = 100;
uint8_t again = 0;
- switch_mutex_t *io_mutex = dbh->io_mutex;
if (!retries) {
forever = 1;
retries = 1000;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
if (!zstr(pre_trans_execute)) {
switch_cache_db_execute_sql_real(dbh, pre_trans_execute, &errmsg);
if (errmsg) {
}
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
}
{
switch_status_t status = SWITCH_STATUS_FALSE;
char *errmsg = NULL;
- switch_mutex_t *io_mutex = dbh->io_mutex;
struct helper h = {0};
-
if (err) {
*err = NULL;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
h.callback = callback;
h.pdata = pdata;
break;
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
}
{
switch_status_t status = SWITCH_STATUS_FALSE;
char *errmsg = NULL;
- switch_mutex_t *io_mutex = dbh->io_mutex;
struct helper h;
*err = NULL;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
h.callback = callback;
h.pdata = pdata;
break;
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
return status;
}
{
switch_status_t status = SWITCH_STATUS_FALSE;
char *errmsg = NULL;
- switch_mutex_t *io_mutex = dbh->io_mutex;
if (err) {
*err = NULL;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
-
switch (dbh->type) {
case SCDB_TYPE_DATABASE_INTERFACE:
{
break;
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
}
{
switch_status_t status = SWITCH_STATUS_FALSE;
char *errmsg = NULL;
- switch_mutex_t *io_mutex = dbh->io_mutex;
if (err) {
*err = NULL;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
-
switch (dbh->type) {
case SCDB_TYPE_DATABASE_INTERFACE:
{
break;
}
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return status;
}
const char *test_sql, const char *drop_sql, const char *reactive_sql, const char *row_size_limited_reactive_sql)
{
switch_bool_t r = SWITCH_TRUE;
- switch_mutex_t *io_mutex = dbh->io_mutex;
switch_assert(test_sql != NULL);
switch_assert(reactive_sql != NULL);
return (status == SWITCH_STATUS_SUCCESS) ? SWITCH_TRUE : SWITCH_FALSE;
}
- if (io_mutex) switch_mutex_lock(io_mutex);
-
switch (dbh->type) {
case SCDB_TYPE_DATABASE_INTERFACE:
{
break;
}
-
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return r;
}
void *pop;
switch_status_t status;
uint32_t ttl = 0;
- switch_mutex_t *io_mutex = qm->event_db->io_mutex;
uint32_t i;
- if (io_mutex) switch_mutex_lock(io_mutex);
-
if (!zstr(qm->pre_trans_execute)) {
switch_cache_db_execute_sql_real(qm->event_db, qm->pre_trans_execute, &errmsg);
if (errmsg) {
}
switch_mutex_unlock(qm->mutex);
-
- if (io_mutex) switch_mutex_unlock(io_mutex);
-
return ttl;
}
sql_manager.manage = manage;
switch_mutex_init(&sql_manager.dbh_mutex, SWITCH_MUTEX_NESTED, sql_manager.memory_pool);
- switch_mutex_init(&sql_manager.io_mutex, SWITCH_MUTEX_NESTED, sql_manager.memory_pool);
switch_mutex_init(&sql_manager.ctl_mutex, SWITCH_MUTEX_NESTED, sql_manager.memory_pool);
if (!sql_manager.manage) goto skip;