/*
* The UCW Library -- Threading Helpers
*
- * (c) 2006--2010 Martin Mares <mj@ucw.cz>
+ * (c) 2006--2012 Martin Mares <mj@ucw.cz>
*
* This software may be freely distributed and used according to the terms
* of the GNU Lesser General Public License.
#ifndef _UCW_THREADS_H
#define _UCW_THREADS_H
+#include <ucw/sighandler.h>
+
/* This structure holds per-thread data */
struct ucwlib_context {
struct asio_queue *io_queue; // Async I/O queue for fb-direct.c
ucw_sighandler_t *signal_handlers; // Signal handlers for sighandler.c
struct main_context *main_context; // Current context for mainloop.c
+ struct cf_context *cf_context; // Current context for configuration parser
+ // Resources and transactions:
+ struct respool *current_respool; // Current resource pool
+ struct mempool *trans_pool; // Transaction mempool
+ struct trans *current_trans; // Currently open transaction
};
#ifdef CONFIG_UCW_THREADS
void ucwlib_lock(void);
void ucwlib_unlock(void);
-extern uns ucwlib_thread_stack_size;
+extern uint ucwlib_thread_stack_size;
#else
/* We have no threads, let's simulate the context and locking */
-extern struct ucwlib_context default_ucwlib_context;
-static inline struct ucwlib_context *ucwlib_thread_context(void) { return &default_ucwlib_context; }
+extern struct ucwlib_context ucwlib_default_context;
+static inline struct ucwlib_context *ucwlib_thread_context(void) { return &ucwlib_default_context; }
static inline int ucwlib_thread_id(struct ucwlib_context *c UNUSED) { return 0; }