diff options
Diffstat (limited to 'src/kpi')
-rw-r--r-- | src/kpi/dlt-kpi.c | 15 | ||||
-rw-r--r-- | src/kpi/dlt-kpi.h | 3 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/kpi/dlt-kpi.c b/src/kpi/dlt-kpi.c index 0fbff3a..d9f9727 100644 --- a/src/kpi/dlt-kpi.c +++ b/src/kpi/dlt-kpi.c @@ -186,6 +186,7 @@ void *dlt_kpi_start_process_thread() DltReturnValue dlt_kpi_process_loop() { static unsigned long int old_millis, sleep_millis, dif_millis; + struct timespec ts; old_millis = get_millis(); @@ -201,7 +202,9 @@ DltReturnValue dlt_kpi_process_loop() else sleep_millis = config.process_log_interval - dif_millis; - usleep(sleep_millis * 1000); + ts.tv_sec = (sleep_millis * NANOSEC_PER_MILLISEC) / NANOSEC_PER_SEC; + ts.tv_nsec = (sleep_millis * NANOSEC_PER_MILLISEC) % NANOSEC_PER_SEC; + nanosleep(&ts, NULL); old_millis = get_millis(); } @@ -424,6 +427,7 @@ void *dlt_kpi_start_irq_thread() DltReturnValue dlt_kpi_irq_loop() { static unsigned long int old_millis, sleep_millis, dif_millis; + struct timespec ts; old_millis = get_millis(); @@ -439,7 +443,9 @@ DltReturnValue dlt_kpi_irq_loop() else sleep_millis = config.irq_log_interval - dif_millis; - usleep(sleep_millis * 1000); + ts.tv_sec = (sleep_millis * NANOSEC_PER_MILLISEC) / NANOSEC_PER_SEC; + ts.tv_nsec = (sleep_millis * NANOSEC_PER_MILLISEC) % NANOSEC_PER_SEC; + nanosleep(&ts, NULL); old_millis = get_millis(); } @@ -458,6 +464,7 @@ void *dlt_kpi_start_check_thread() DltReturnValue dlt_kpi_check_loop() { static unsigned long int old_millis, sleep_millis, dif_millis; + struct timespec ts; old_millis = get_millis(); @@ -473,7 +480,9 @@ DltReturnValue dlt_kpi_check_loop() else sleep_millis = config.check_log_interval - dif_millis; - usleep(sleep_millis * 1000); + ts.tv_sec = (sleep_millis * NANOSEC_PER_MILLISEC) / NANOSEC_PER_SEC; + ts.tv_nsec = (sleep_millis * NANOSEC_PER_MILLISEC) % NANOSEC_PER_SEC; + nanosleep(&ts, NULL); old_millis = get_millis(); } diff --git a/src/kpi/dlt-kpi.h b/src/kpi/dlt-kpi.h index ff647d4..4cefb73 100644 --- a/src/kpi/dlt-kpi.h +++ b/src/kpi/dlt-kpi.h @@ -40,6 +40,9 @@ #define COMMAND_LINE_SIZE 1024 +#define NANOSEC_PER_MILLISEC 1000000 +#define NANOSEC_PER_SEC 1000000000 + /* STRUCTURES */ typedef struct { |