mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
res_config_sqlite3: Only join threads that we started
ASTERISK-28477 #close Reported by: Dennis ASTERISK-28478 #close Reported by: Dennis Change-Id: I77347ad46a86dc5b35ed68270cee56acefb4f475
This commit is contained in:
@@ -104,6 +104,7 @@ struct realtime_sqlite3_db {
|
||||
unsigned int debug:1;
|
||||
unsigned int exiting:1;
|
||||
unsigned int wakeup:1;
|
||||
unsigned int has_batch_thread:1;
|
||||
unsigned int batch;
|
||||
};
|
||||
|
||||
@@ -368,13 +369,14 @@ void db_start_batch(struct realtime_sqlite3_db *db)
|
||||
if (db->batch) {
|
||||
ast_cond_init(&db->cond, NULL);
|
||||
ao2_ref(db, +1);
|
||||
ast_pthread_create_background(&db->syncthread, NULL, db_sync_thread, db);
|
||||
db->has_batch_thread = !ast_pthread_create_background(&db->syncthread, NULL, db_sync_thread, db);
|
||||
}
|
||||
}
|
||||
|
||||
void db_stop_batch(struct realtime_sqlite3_db *db)
|
||||
{
|
||||
if (db->batch) {
|
||||
if (db->has_batch_thread) {
|
||||
db->has_batch_thread = 0;
|
||||
db->exiting = 1;
|
||||
db_sync(db);
|
||||
pthread_join(db->syncthread, NULL);
|
||||
|
Reference in New Issue
Block a user