From 07ced4c0ae31a2fc251e3da2f0ced104cb185d70 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Mon, 18 Dec 2006 11:59:35 +0100 Subject: [PATCH] Added thread_id to ucwlib_context. --- lib/threads.c | 14 +++++++++++++- lib/threads.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/threads.c b/lib/threads.c index f45c8e38..cd1db74d 100644 --- a/lib/threads.c +++ b/lib/threads.c @@ -31,6 +31,17 @@ ucwlib_threads_init(void) pthread_mutex_init(&ucwlib_master_mutex, NULL); } +static int +ucwlib_tid(void) +{ + static tid_counter; + + ucwlib_lock(); + int tid = ++tid_counter; + ucwlib_unlock(); + return tid; +} + struct ucwlib_context * ucwlib_thread_context(void) { @@ -38,6 +49,7 @@ ucwlib_thread_context(void) if (!c) { c = xmalloc_zero(sizeof(*c)); + c->thread_id = ucwlib_tid(); pthread_setspecific(ucwlib_context_key, c); } return c; @@ -82,7 +94,7 @@ int main(void) { ucwlib_lock(); ucwlib_unlock(); - ucwlib_thread_context(); + log(L_INFO, "tid=%d", ucwlib_thread_context()->thread_id); return 0; } diff --git a/lib/threads.h b/lib/threads.h index 9e33109e..c70354fb 100644 --- a/lib/threads.h +++ b/lib/threads.h @@ -13,6 +13,7 @@ /* This structure holds per-thread data */ struct ucwlib_context { + int thread_id; // Thread ID (either kernel tid or a counter) int temp_counter; // Counter for fb-temp.c struct asio_queue *io_queue; // Async I/O queue for fb-direct.c sh_sighandler_t *signal_handlers; // Signal handlers for sighandler.c -- 2.39.2