do_hosekeeping is now a seperate thread. This releases worker threads
[citadel.git] / citadel / sysdep.c
index b89680c9eeda02ea3f001fd25cf54860a86b9869..7bc8741c7d886fc994684b21cae46f806f6d9d12 100644 (file)
@@ -234,6 +234,9 @@ void init_sysdep(void) {
        // sigaddset(&set, SIGILL);     we want core dumps
        // sigaddset(&set, SIGBUS);
        sigprocmask(SIG_UNBLOCK, &set, NULL);
+       sigemptyset(&set);
+       sigaddset(&set, SIGUSR1);
+       sigprocmask(SIG_BLOCK, &set, NULL);
 
        signal(SIGINT, signal_cleanup);
        signal(SIGQUIT, signal_cleanup);
@@ -454,6 +457,7 @@ struct CitContext *CreateNewContext(void) {
        if (me->next != NULL) {
                me->next->prev = me;
        }
+       me->client_expires_at.tv_sec = config.c_sleeping;
        ++num_sessions;
        end_critical_section(S_SESSION_TABLE);
        return (me);
@@ -1256,7 +1260,6 @@ SKIP_SELECT:
                }
 
                dead_session_purge(force_purge);
-               do_housekeeping();
        }
        /* If control reaches this point, the server is shutting down */        
        return(NULL);