summaryrefslogtreecommitdiff
path: root/src/lib/dlt_filetransfer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dlt_filetransfer.c')
-rw-r--r--src/lib/dlt_filetransfer.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/dlt_filetransfer.c b/src/lib/dlt_filetransfer.c
index 7844de2..736a7d6 100644
--- a/src/lib/dlt_filetransfer.c
+++ b/src/lib/dlt_filetransfer.c
@@ -68,6 +68,9 @@
#define DLT_FILETRANSFER_TRANSFER_ALL_PACKAGES INT_MAX
+#define NANOSEC_PER_MILLISEC 1000000
+#define NANOSEC_PER_SEC 1000000000
+
/*!Buffer for dlt file transfer. The size is defined by BUFFER_SIZE */
unsigned char buffer[BUFFER_SIZE];
@@ -194,7 +197,10 @@ int isFile (const char *file)
*/
void doTimeout(int timeout)
{
- usleep(timeout * 1000);
+ struct timespec ts;
+ ts.tv_sec = (timeout * NANOSEC_PER_MILLISEC) / NANOSEC_PER_SEC;
+ ts.tv_nsec = (timeout * NANOSEC_PER_MILLISEC) % NANOSEC_PER_SEC;
+ nanosleep(&ts, NULL);
}
/*!Checks free space of the user buffer */