From: Eliot Gable Date: Tue, 20 Nov 2012 14:09:02 +0000 (+0000) Subject: FS-4850: Make cache db get_handle call not return handles which are already in use. X-Git-Tag: v1.3.6~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3ea579ccc32a56d60fd2989594d094c22d516c48;p=thirdparty%2Ffreeswitch.git FS-4850: Make cache db get_handle call not return handles which are already in use. --- diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index b776a14a87..5df382efab 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -144,7 +144,7 @@ static switch_cache_db_handle_t *get_handle(const char *db_str, const char *user switch_mutex_lock(sql_manager.dbh_mutex); for (dbh_ptr = sql_manager.handle_pool; dbh_ptr; dbh_ptr = dbh_ptr->next) { - if (dbh_ptr->thread_hash == thread_hash && dbh_ptr->hash == hash && + if (dbh_ptr->thread_hash == thread_hash && dbh_ptr->hash == hash && !dbh_ptr->use_count && !switch_test_flag(dbh_ptr, CDF_PRUNE) && switch_mutex_trylock(dbh_ptr->mutex) == SWITCH_STATUS_SUCCESS) { r = dbh_ptr; }