From: Martin Mares Date: Mon, 18 Dec 2006 10:59:35 +0000 (+0100) Subject: Added thread_id to ucwlib_context. X-Git-Tag: holmes-import~507^2~3^2~1 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=07ced4c0ae31a2fc251e3da2f0ced104cb185d70;p=libucw.git Added thread_id to ucwlib_context. --- 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