Merge e7f38452ba6df1b9567bccb58cbda46f3de4a223 into 3b58ebc5f309708bde0ad26eef73e606144792f6

This commit is contained in:
Andrey Volk 2025-01-21 00:17:21 +00:00 committed by GitHub
commit bb19f31b40
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -195,7 +195,7 @@ static switch_cache_db_handle_t *get_handle(const char *db_str, const char *user
This allows SQLite to read and write within a single thread, giving the same handle for both operations. This allows SQLite to read and write within a single thread, giving the same handle for both operations.
*/ */
for (dbh_ptr = sql_manager.handle_pool; dbh_ptr; dbh_ptr = dbh_ptr->next) { 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 && !strcmp(dbh_ptr->name, db_str) &&
!switch_test_flag(dbh_ptr, CDF_PRUNE) && switch_mutex_trylock(dbh_ptr->mutex) == SWITCH_STATUS_SUCCESS) { !switch_test_flag(dbh_ptr, CDF_PRUNE) && switch_mutex_trylock(dbh_ptr->mutex) == SWITCH_STATUS_SUCCESS) {
r = dbh_ptr; r = dbh_ptr;
break; break;
@ -207,7 +207,7 @@ static switch_cache_db_handle_t *get_handle(const char *db_str, const char *user
If a handle is in use, skip and create new one. If a handle is in use, skip and create new one.
*/ */
for (dbh_ptr = sql_manager.handle_pool; dbh_ptr; dbh_ptr = dbh_ptr->next) { for (dbh_ptr = sql_manager.handle_pool; dbh_ptr; dbh_ptr = dbh_ptr->next) {
if (dbh_ptr->hash == hash && !dbh_ptr->use_count && !switch_test_flag(dbh_ptr, CDF_PRUNE) && if (dbh_ptr->hash == hash && !strcmp(dbh_ptr->name, db_str) && !dbh_ptr->use_count && !switch_test_flag(dbh_ptr, CDF_PRUNE) &&
switch_mutex_trylock(dbh_ptr->mutex) == SWITCH_STATUS_SUCCESS) { switch_mutex_trylock(dbh_ptr->mutex) == SWITCH_STATUS_SUCCESS) {
r = dbh_ptr; r = dbh_ptr;
r->thread_hash = thread_hash; r->thread_hash = thread_hash;