]> mj.ucw.cz Git - libucw.git/blob - lib/threads.h
Fixed thread safety of signal handling.
[libucw.git] / lib / threads.h
1 /*
2  *      The UCW Library -- Threading Helpers
3  *
4  *      (c) 2006 Martin Mares <mj@ucw.cz>
5  *
6  *      This software may be freely distributed and used according to the terms
7  *      of the GNU Lesser General Public License.
8  */
9
10 #ifndef _UCW_THREAD_H
11 #define _UCW_THREAD_H
12
13 /* This structure holds per-thread data */
14
15 struct ucwlib_context {
16   int temp_counter;                     // Counter for fb-temp.c
17   struct asio_queue *io_queue;          // Async I/O queue for fb-direct.c
18   sh_sighandler_t *signal_handlers;     // Signal handlers for sighandler.c
19 };
20
21 struct ucwlib_context *ucwlib_thread_context(void);
22
23 /* Global lock used for initialization, cleanup and other not so frequently accessed global state */
24
25 void ucwlib_lock(void);
26 void ucwlib_unlock(void);
27
28 #ifdef CONFIG_UCW_THREADS
29
30 extern uns default_thread_stack_size;
31
32 #endif
33
34 #endif