From df6fc2a1ce9f3a1778e9c8e14c800cd2ad96e96e Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Tue, 8 Jan 2019 16:45:04 +0900 Subject: POSIX: Replace usleep with nanosleep Signed-off-by: Saya Sugiura --- src/console/dlt-control-common.h | 3 +++ src/console/dlt-control.c | 5 ++++- src/console/logstorage/dlt-logstorage-udev.c | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/console') diff --git a/src/console/dlt-control-common.h b/src/console/dlt-control-common.h index 0bd7deb..f2dc38f 100644 --- a/src/console/dlt-control-common.h +++ b/src/console/dlt-control-common.h @@ -50,6 +50,9 @@ #define DLT_CTRL_DEFAULT_ECUID "ECU1" +#define NANOSEC_PER_MILLISEC 1000000 +#define NANOSEC_PER_SEC 1000000000 + /* To be used as Dlt Message body when sending to DLT daemon */ typedef struct { diff --git a/src/console/dlt-control.c b/src/console/dlt-control.c index a1eb408..19e4b36 100644 --- a/src/console/dlt-control.c +++ b/src/console/dlt-control.c @@ -232,6 +232,7 @@ int main(int argc, char *argv[]) int c; int index; char *endptr = NULL; + struct timespec ts; /* Initialize dltdata */ dltdata.vflag = 0; @@ -641,7 +642,9 @@ int main(int argc, char *argv[]) /*dlt_client_main_loop(&dltclient, &dltdata, dltdata.vflag); */ /* Wait timeout */ - usleep(dltdata.tvalue * 1000); + ts.tv_sec = (dltdata.tvalue * NANOSEC_PER_MILLISEC) / NANOSEC_PER_SEC; + ts.tv_nsec = (dltdata.tvalue * NANOSEC_PER_MILLISEC) % NANOSEC_PER_SEC; + nanosleep(&ts, NULL); } /* Dlt Client Cleanup */ diff --git a/src/console/logstorage/dlt-logstorage-udev.c b/src/console/logstorage/dlt-logstorage-udev.c index 578f1fa..e50e660 100644 --- a/src/console/logstorage/dlt-logstorage-udev.c +++ b/src/console/logstorage/dlt-logstorage-udev.c @@ -207,6 +207,7 @@ static int logstorage_udev_udevd_callback(void) DltLogstorageCtrl *lctrl = get_logstorage_control(); LogstorageCtrlUdev *prvt = NULL; struct udev_device *partition = NULL; + struct timespec ts; if (!lctrl) { pr_error("Not able to get logstorage control instance.\n"); @@ -247,7 +248,9 @@ static int logstorage_udev_udevd_callback(void) * Then, udev is only interesting to simplify the check on new devices, * and/or for hot unplug (without unmount). */ - usleep(500 * 1000); + ts.tv_sec = 0; + ts.tv_nsec = 500 * NANOSEC_PER_MILLISEC; + nanosleep(&ts, NULL); ret = check_mountpoint_from_partition(EVENT_MOUNTED, partition); } else if (strncmp(action, "remove", sizeof("remove")) == 0) -- cgit v1.2.1