Just use CLOCK_MONOTONIC and clean up includes
CLOCK_MONOTONIC exists everywhere.
This commit is contained in:
parent
ba2175979c
commit
f39d916e3a
19
daemon.c
19
daemon.c
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
2
daemon.h
2
daemon.h
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user