* Initial hack of worker-thread rearchitecture. Right now it is successfully
[citadel.git] / citadel / server.h
index 2f977a9d9c0dc230e01912114c95ce110da27e47..b693c275dd87d478aac870043574e6f876ab4fd9 100644 (file)
@@ -56,6 +56,8 @@ struct CitContext {
        struct usersupp usersupp;       /* Database record buffers */
        struct quickroom quickroom;
 
+       int state;              /* thread state (see CON_ values below) */
+
        char curr_user[32];     /* name of current user */
        int logged_in;          /* logged in */
        int internal_pgm;       /* authenticated as internal program */
@@ -63,8 +65,6 @@ struct CitContext {
        int nologin;            /* not allowed to log in */
 
        char net_node[32];
-       THREAD mythread;
-       int n_crit;             /* number of critical sections open */
        int client_socket;
        int cs_pid;             /* session ID */
        time_t cs_lastupdt;     /* time of last update */
@@ -103,6 +103,14 @@ struct CitContext {
 
 typedef struct CitContext t_context;
 
+/* Values for CitContext.state */
+enum {
+       CON_IDLE,               /* This context is doing nothing */
+       CON_EXECUTING,          /* This context is bound to a thread */
+       CON_DYING               /* This context is being terminated */
+};
+
+
 #define CS_STEALTH     1       /* stealth mode */
 #define CS_CHAT                2       /* chat mode */
 #define CS_POSTING     4       /* Posting */
@@ -153,6 +161,7 @@ enum {
        S_DATABASE,
        S_NETDB,
        S_SUPPMSGMAIN,
+       S_I_WANNA_SELECT,
        MAX_SEMAPHORES
 };