Moved all threading code into threads.c
[citadel.git] / citadel / sysdep_decls.h
index ab8745c790c5e0ee1073ddc3b0190c287d441bc9..c53445dbcce9901e667aa193e13ccce54cf83021 100644 (file)
 #include <pthread.h>
 #include <stdarg.h>
 #include "sysdep.h"
+
+#ifdef HAVE_DB_H
+#include <db.h>
+#elif defined(HAVE_DB4_DB_H)
+#include <db4/db.h>
+#else
+#error Neither <db.h> nor <db4/db.h> was found by configure. Install db4-devel.
+#endif
+
+
+#if DB_VERSION_MAJOR < 4 || DB_VERSION_MINOR < 1
+#error Citadel requires Berkeley DB v4.1 or newer.  Please upgrade.
+#endif
+
 #include "server.h"
+#include "database.h"
 
 #if SIZEOF_SIZE_T == SIZEOF_INT 
 #define SIZE_T_FMT "%d"
@@ -58,8 +73,6 @@ extern pthread_key_t MyConKey;                        /* TSD key for MyContext() */
 extern int enable_syslog;
 
 void init_sysdep (void);
-void begin_critical_section (int which_one);
-void end_critical_section (int which_one);
 int ig_tcp_server (char *ip_addr, int port_number, int queue_len,char **errormessage);
 int ig_uds_server(char *sockpath, int queue_len, char **errormessage);
 struct CitContext *MyContext (void);
@@ -79,16 +92,15 @@ void start_daemon (int do_close_stdio);
 void cmd_nset (char *cmdbuf);
 int convert_login (char *NameToConvert);
 void *worker_thread (void *arg);
+void *context_cleanup_thread (void *arg);
 void become_session(struct CitContext *which_con);
 void InitializeMasterCC(void);
 void init_master_fdset(void);
 void create_worker(void);
-void InitialiseSemaphores(void);
-void ctdl_internal_thread_gc (int shutdown);
 
 
 extern int num_sessions;
-extern volatile int time_to_die;
+extern volatile int exit_signal;
 extern volatile int shutdown_and_halt;
 extern volatile int running_as_daemon;
 extern volatile int restart_server;
@@ -96,23 +108,8 @@ extern volatile int restart_server;
 extern int verbosity;
 extern int rescan[];
 
-extern struct worker_node {
-        pthread_t tid;
-        struct worker_node *next;
-} *worker_list;
-
-
-extern struct CtdlThreadNode {
-       pthread_t tid;
-       char *name;
-       void *(*thread_func) (void *arg);
-       void *user_args;
-       int flags;
-       int running;
-       int valid;
-       struct CtdlThreadNode *prev;
-       struct CtdlThreadNode *next;
-} *CtdlThreadList;
+
+
 
 extern int SyslogFacility(char *name);
 extern int syslog_facility;