]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4850: Make cache db get_handle call not return handles which are already in use.
authorEliot Gable <egable@gmail.com>
Tue, 20 Nov 2012 14:09:02 +0000 (14:09 +0000)
committerEliot Gable <egable@gmail.com>
Tue, 20 Nov 2012 14:09:02 +0000 (14:09 +0000)
src/switch_core_sqldb.c

index b776a14a877b70d2a7fc42ec1723beb36fd6e305..5df382efab4024625e9f725d46f0c0d48e7f575b 100644 (file)
@@ -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;
                }