Fixed multiple trace problems.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4357 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-07-20 05:06:15 +00:00
parent 6889e11fd1
commit c371fc2a8e
7 changed files with 101 additions and 21 deletions

View File

@ -2129,6 +2129,7 @@ tf_ssb_t* tf_ssb_create(uv_loop_t* loop, JSContext* context, const char* db_path
sqlite3* tf_ssb_acquire_db_reader(tf_ssb_t* ssb)
{
tf_trace_begin(ssb->trace, "db_reader");
sqlite3* db = NULL;
uv_mutex_lock(&ssb->db_readers_lock);
if (ssb->db_readers_count)
@ -2139,8 +2140,8 @@ sqlite3* tf_ssb_acquire_db_reader(tf_ssb_t* ssb)
{
sqlite3_open_v2(ssb->db_path, &db, SQLITE_OPEN_READONLY | SQLITE_OPEN_URI, NULL);
tf_ssb_db_init_reader(db);
tf_trace_sqlite(ssb->trace, db);
}
tf_trace_sqlite(ssb->trace, db);
uv_mutex_unlock(&ssb->db_readers_lock);
return db;
}
@ -2151,10 +2152,12 @@ void tf_ssb_release_db_reader(tf_ssb_t* ssb, sqlite3* db)
ssb->db_readers = tf_resize_vec(ssb->db_readers, sizeof(sqlite3*) * (ssb->db_readers_count + 1));
ssb->db_readers[ssb->db_readers_count++] = db;
uv_mutex_unlock(&ssb->db_readers_lock);
tf_trace_end(ssb->trace);
}
sqlite3* tf_ssb_acquire_db_writer(tf_ssb_t* ssb)
{
tf_trace_begin(ssb->trace, "db_writer");
uv_mutex_lock(&ssb->db_writer_lock);
sqlite3* writer = ssb->db_writer;
assert(writer);
@ -2167,6 +2170,7 @@ void tf_ssb_release_db_writer(tf_ssb_t* ssb, sqlite3* db)
assert(ssb->db_writer == NULL);
ssb->db_writer = db;
uv_mutex_unlock(&ssb->db_writer_lock);
tf_trace_end(ssb->trace);
}
uv_loop_t* tf_ssb_get_loop(tf_ssb_t* ssb)
@ -2207,6 +2211,16 @@ void tf_ssb_set_trace(tf_ssb_t* ssb, tf_trace_t* trace)
tf_trace_sqlite(trace, db);
}
tf_ssb_release_db_writer(ssb, db);
if (trace)
{
uv_mutex_lock(&ssb->db_readers_lock);
for (int i = 0; i < ssb->db_readers_count; i++)
{
tf_trace_sqlite(trace, ssb->db_readers[i]);
}
uv_mutex_unlock(&ssb->db_readers_lock);
}
}
tf_trace_t* tf_ssb_get_trace(tf_ssb_t* ssb)