Just use CLOCK_MONOTONIC and clean up includes

CLOCK_MONOTONIC exists everywhere.
This commit is contained in:
C. McEnroe 2020-08-15 09:53:03 -04:00
parent ba2175979c
commit f39d916e3a
3 changed files with 12 additions and 11 deletions

View File

@ -29,7 +29,6 @@
#include <string.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/timespec.h>
#include <sys/wait.h>
#include <sysexits.h>
#include <syslog.h>
@ -266,7 +265,7 @@ int main(int argc, char *argv[]) {
struct timespec now = {0};
struct timespec timeout = {0};
if (timespecisset(&deadline)) {
clock_gettime(CLOCK_MONOTONIC_FAST, &now);
clock_gettime(CLOCK_MONOTONIC, &now);
timespecsub(&deadline, &now, &timeout);
}
if (timeout.tv_sec < 0 || timeout.tv_nsec < 0) {
@ -281,13 +280,15 @@ int main(int argc, char *argv[]) {
// TODO: Handle FIFO and pipes.
clock_gettime(CLOCK_MONOTONIC_FAST, &now);
for (size_t i = 0; i < services.len; ++i) {
struct Service *service = &services.ptr[i];
if (service->intent != Start) continue;
if (service->state == Start) continue;
if (timespeccmp(&service->restartDeadline, &now, <=)) {
serviceStart(service);
if (timespecisset(&deadline)) {
clock_gettime(CLOCK_MONOTONIC, &now);
for (size_t i = 0; i < services.len; ++i) {
struct Service *service = &services.ptr[i];
if (service->intent != Start) continue;
if (service->state == Start) continue;
if (timespeccmp(&service->restartDeadline, &now, <=)) {
serviceStart(service);
}
}
}

View File

@ -19,7 +19,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <sys/timespec.h>
#include <sys/time.h>
#include <unistd.h>
typedef unsigned char byte;

View File

@ -111,7 +111,7 @@ err:
}
static void setDeadline(struct Service *service) {
clock_gettime(CLOCK_MONOTONIC_FAST, &service->restartDeadline);
clock_gettime(CLOCK_MONOTONIC, &service->restartDeadline);
timespecadd(
&service->restartDeadline, &service->restartInterval,
&service->restartDeadline