[exim-cvs] Handle kernels not providing microsecond time res…

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Exim Git Commits Mailing List
Ημερομηνία:  
Προς: exim-cvs
Αντικείμενο: [exim-cvs] Handle kernels not providing microsecond time resolution
Gitweb: https://git.exim.org/exim.git/commitdiff/fce5c23c3e21a41f8be6035408437fda63bac10a
Commit:     fce5c23c3e21a41f8be6035408437fda63bac10a
Parent:     5fae29d5b430d6a5f58c6c02cdefbbf307e258a9
Author:     Samuel Thibault <samuel.thibault@???>
AuthorDate: Fri Dec 13 00:41:01 2019 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Fri Dec 13 00:41:56 2019 +0000


    Handle kernels not providing microsecond time resolution
---
 src/src/exim.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)


diff --git a/src/src/exim.c b/src/src/exim.c
index 8c3c8e7..72bf65e 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -407,7 +407,7 @@ long int now_true_usec;
now_true_usec = now_tv.tv_usec;
now_tv.tv_usec = (now_true_usec/resolution) * resolution;

-if (exim_tvcmp(&now_tv, then_tv) <= 0)
+while (exim_tvcmp(&now_tv, then_tv) <= 0)
   {
   struct itimerval itval;
   itval.it_interval.tv_sec = 0;
@@ -439,6 +439,13 @@ if (exim_tvcmp(&now_tv, then_tv) <= 0)
     }


milliwait(&itval);
+
+ /* Be prapared to go around if the kernel does not implement subtick
+ granularity (GNU Hurd) */
+
+ (void)gettimeofday(&now_tv, NULL);
+ now_true_usec = now_tv.tv_usec;
+ now_tv.tv_usec = (now_true_usec/resolution) * resolution;
}
}