Moved all threading code into threads.c
[citadel.git] / citadel / sysdep_decls.h
index 33a94e752fc5b1652f5014510520f8ebf36762c7..c53445dbcce9901e667aa193e13ccce54cf83021 100644 (file)
@@ -73,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);
@@ -99,7 +97,6 @@ void become_session(struct CitContext *which_con);
 void InitializeMasterCC(void);
 void init_master_fdset(void);
 void create_worker(void);
-void InitialiseSemaphores(void);
 
 
 extern int num_sessions;
@@ -113,75 +110,6 @@ extern int rescan[];
 
 
 
-/*
- * Thread stuff
- */
-#define CTDLTHREAD_BIGSTACK    0x0001
-#define CTDLTHREAD_WORKER      0x0002
-
-enum CtdlThreadState {
-       CTDL_THREAD_INVALID,
-       CTDL_THREAD_VALID,
-       CTDL_THREAD_CREATE,
-       CTDL_THREAD_CANCELLED,
-       CTDL_THREAD_EXITED,
-       CTDL_THREAD_STOPPING,
-       CTDL_THREAD_STOP_REQ,   /* Do NOT put any running states before this state */
-       CTDL_THREAD_SLEEPING,
-       CTDL_THREAD_BLOCKED,
-       CTDL_THREAD_RUNNING,
-       CTDL_THREAD_LAST_STATE
-};
-
-extern struct CtdlThreadNode {
-       pthread_t tid;                          /* id as returned by pthread_create() */
-       pid_t pid;                              /* pid, as best the OS will let us determine */
-       time_t when;                            /* When to start a scheduled thread */
-       struct CitConext *Context;              /* The session context that this thread mught be working on or NULL if none */
-       long number;                            /* A unigue number for this thread (not implimented yet) */
-       int wakefd_recv;                        /* An fd that this thread can sleep on (not implimented yet) */
-       int wakefd_send;                        /* An fd that this thread can send out on (Not implimented yet) */
-       int signal;                             /* A field to store a signal we caught. */
-       const char *name;                       /* A name for this thread */
-       void *(*thread_func) (void *arg);       /* The actual function that does this threads work */
-       void *user_args;                        /* Arguments passed to this threads work function */
-       long flags;                             /* Flags that describe this thread */
-       enum CtdlThreadState state;             /* Flag to show state of this thread */
-       pthread_mutex_t ThreadMutex;            /* A mutex to sync this thread to others if this thread allows (also used for sleeping) */
-       pthread_cond_t ThreadCond;              /* A condition variable to sync this thread with others */
-       pthread_mutex_t SleepMutex;             /* A mutex for sleeping */
-       pthread_cond_t SleepCond;               /* A condition variable for sleeping */
-       pthread_attr_t attr;                    /* Attributes of this thread */
-       struct timeval start_time;              /* Time this thread was started */
-       struct timeval last_state_change;       /* Time when this thread last changed state */
-       double avg_sleeping;                    /* Average sleeping time */
-       double avg_running;                     /* Average running time */
-       double avg_blocked;                     /* Average blocked time */
-       double load_avg;                        /* Load average for this thread */
-       struct CtdlThreadNode *prev;            /* Previous thread in the thread table */
-       struct CtdlThreadNode *next;            /* Next thread in the thread table */
-} *CtdlThreadList;
-
-typedef struct {
-       DB_TXN *tid;            /* Transaction handle */
-       DBC *cursors[MAXCDB];   /* Cursors, for traversals... */
-       struct CtdlThreadNode *self;    /* Pointer to this threads control structure */
-}ThreadTSD ;
-
-extern double CtdlThreadLoadAvg;
-extern double CtdlThreadWorkerAvg;
-extern pthread_key_t ThreadKey;
-
-void ctdl_thread_internal_init_tsd(void);
-void ctdl_internal_thread_gc (void);
-void ctdl_thread_internal_init(void);
-void ctdl_thread_internal_cleanup(void);
-void ctdl_thread_internal_calc_loadavg(void);
-void ctdl_thread_internal_free_tsd(void);
-struct CtdlThreadNode *ctdl_internal_create_thread(char *name, long flags, void *(*thread_func) (void *arg), void *args);
-void ctdl_thread_internal_check_scheduled(void);
-
-
 
 extern int SyslogFacility(char *name);
 extern int syslog_facility;