diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2015-03-16 11:38:56 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2015-03-16 11:48:26 +0100 |
commit | db354c28812170d74f745ef0797e6dfbfaf27a3b (patch) | |
tree | 12fbce2f53e628a4c1f2df5005d64fae21953f67 /tests/utils.c | |
parent | 4d4eb881fdde41d9052ac86c9c2a6f8d7bf759c8 (diff) | |
download | gnutls-db354c28812170d74f745ef0797e6dfbfaf27a3b.tar.gz |
tests: use nanosleep for sleeping
Diffstat (limited to 'tests/utils.c')
-rw-r--r-- | tests/utils.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/utils.c b/tests/utils.c index 516cc9d60a..e785fb5424 100644 --- a/tests/utils.c +++ b/tests/utils.c @@ -27,6 +27,9 @@ #include <stdio.h> #include <stdlib.h> #include <stdarg.h> +#include <time.h> +#include <unistd.h> +#include <errno.h> #include <netinet/in.h> #include <sys/types.h> #include <sys/socket.h> @@ -57,6 +60,26 @@ void fail(const char *format, ...) exit(1); } +void sec_sleep(int sec) +{ + int ret; +#ifdef HAVE_NANOSLEEP + struct timespec ts; + + ts.tv_sec = sec; + ts.tv_nsec = 0; + do { + ret = nanosleep(&ts, NULL); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + abort(); +#else + do { + ret = sleep(sec); + } while (ret == -1 && errno == EINTR); +#endif +} + void success(const char *format, ...) { char str[1024]; |