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

View File

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

View File

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