]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - sched.c
recv: Use buffer tree API unconditionally.
[paraslash.git] / sched.c
diff --git a/sched.c b/sched.c
index 44e66c9b62664eb3add50d9924db6b311ea7e273..14346ec0e1c411ab08da2ddbdc85073d6945615b 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -108,12 +108,12 @@ int schedule(struct sched *s)
                return -E_NOT_INITIALIZED;
        if (!s->select_function)
                s->select_function = para_select;
-       gettimeofday(now, NULL);
 again:
        FD_ZERO(&s->rfds);
        FD_ZERO(&s->wfds);
        s->timeout = s->default_timeout;
        s->max_fileno = -1;
+       gettimeofday(now, NULL);
        sched_preselect(s);
        if (list_empty(&pre_select_list) && list_empty(&post_select_list))
                return 0;
@@ -250,3 +250,22 @@ int kill_task(char *id)
        }
        return -E_NO_SUCH_TASK;
 }
+
+void sched_min_delay(struct sched *s)
+{
+       s->timeout.tv_sec = 0;
+       s->timeout.tv_usec = 1;
+}
+
+void sched_request_timeout(struct timeval *timeout, struct sched *s)
+{
+       if (tv_diff(&s->timeout, timeout, NULL) > 0)
+               s->timeout = *timeout;
+}
+
+void sched_request_timeout_ms(long unsigned ms, struct sched *s)
+{
+       struct timeval tv;
+       ms2tv(ms, &tv);
+       sched_request_timeout(&tv, s);
+}