]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - sched.c
vss: Clean up timeout computations.
[paraslash.git] / sched.c
diff --git a/sched.c b/sched.c
index 9be3a2e83109f0db884c5fdebf3e7e62f4f9b3c5..65176bd91a875ab16ce07194299dbc9bde5a00a5 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -7,7 +7,6 @@
 /** \file sched.c Paraslash's scheduling functions. */
 
 #include <regex.h>
-#include <dirent.h> /* readdir() */
 #include <assert.h>
 #include <sys/time.h>
 
@@ -303,17 +302,19 @@ void sched_request_timeout_ms(long unsigned ms, struct sched *s)
  * \param barrier Absolute time before select() should return.
  * \param s Pointer to the scheduler struct.
  *
- * If \a barrier is in the past, this function does nothing.
+ * \return If \a barrier is in the past, this function does nothing and returns
+ * zero. Otherwise it returns one.
  *
  * \sa sched_request_barrier_or_min_delay().
  */
-void sched_request_barrier(struct timeval *barrier, struct sched *s)
+int sched_request_barrier(struct timeval *barrier, struct sched *s)
 {
        struct timeval diff;
 
        if (tv_diff(now, barrier, &diff) > 0)
-               return;
+               return 0;
        sched_request_timeout(&diff, s);
+       return 1;
 }
 
 /**
@@ -322,15 +323,19 @@ void sched_request_barrier(struct timeval *barrier, struct sched *s)
  * \param barrier Absolute time before select() should return.
  * \param s Pointer to the scheduler struct.
  *
- * If \a barrier is in the past, this function requests a minimal timeout.
+ * If \a barrier is in the past, this function requests a minimal timeout and
+ * returns zero. Otherwise it returns one.
  *
  * \sa sched_min_delay(), sched_request_barrier().
  */
-void sched_request_barrier_or_min_delay(struct timeval *barrier, struct sched *s)
+int sched_request_barrier_or_min_delay(struct timeval *barrier, struct sched *s)
 {
        struct timeval diff;
 
-       if (tv_diff(now, barrier, &diff) > 0)
-               return sched_min_delay(s);
+       if (tv_diff(now, barrier, &diff) > 0) {
+               sched_min_delay(s);
+               return 0;
+       }
        sched_request_timeout(&diff, s);
+       return 1;
 }