]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - server.c
sched: Introduce sched_{read,write}_ok().
[paraslash.git] / server.c
index 1020e4fed98ac03d0981d80d517e68abf6e3a76f..ce4ebf34ee680a4e24b9305879ef1b7ea248ba7e 100644 (file)
--- a/server.c
+++ b/server.c
@@ -257,7 +257,7 @@ static int signal_post_select(struct sched *s, __a_unused void *context)
        ret = task_get_notification(signal_task->task);
        if (ret < 0)
                return ret;
-       signum = para_next_signal(&s->rfds);
+       signum = para_next_signal();
        switch (signum) {
        case 0:
                return 0;
@@ -337,7 +337,7 @@ static int command_task_accept(unsigned listen_idx, struct sched *s,
        pid_t child_pid;
        uint32_t *chunk_table;
 
-       ret = para_accept(sct->listen_fds[listen_idx], &s->rfds, NULL, 0, &new_fd);
+       ret = para_accept(sct->listen_fds[listen_idx], NULL, 0, &new_fd);
        if (ret <= 0)
                goto out;
        mmd->num_connects++;
@@ -618,13 +618,13 @@ out:
 }
 
 static int server_select(int max_fileno, fd_set *readfds, fd_set *writefds,
-               struct timeval *timeout_tv)
+               int timeout)
 {
        int ret;
 
        status_refresh();
        mutex_unlock(mmd_mutex);
-       ret = para_select(max_fileno + 1, readfds, writefds, timeout_tv);
+       ret = para_select(max_fileno + 1, readfds, writefds, timeout);
        mutex_lock(mmd_mutex);
        return ret;
 }
@@ -658,7 +658,7 @@ int main(int argc, char *argv[])
        struct server_command_task server_command_task_struct,
                *sct = &server_command_task_struct;
 
-       sched.default_timeout.tv_sec = 1;
+       sched.default_timeout = 1000;
        sched.select_function = server_select;
 
        server_init(argc, argv, sct);
@@ -679,12 +679,13 @@ int main(int argc, char *argv[])
                deplete_close_on_fork_list();
                if (ret < 0)
                        PARA_EMERG_LOG("%s\n", para_strerror(-ret));
+               vss_shutdown();
        } else {
+               vss_shutdown();
                alarm(ALARM_TIMEOUT);
                close_listed_fds();
                ret = handle_connect(sct->child_fd);
        }
-       vss_shutdown();
        shm_detach(mmd);
        user_list_deplete();
        free_lpr();