diff options
Diffstat (limited to 'contrib/traceroute/usleep.c')
-rw-r--r-- | contrib/traceroute/usleep.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/traceroute/usleep.c b/contrib/traceroute/usleep.c new file mode 100644 index 000000000000..6c0716da3c75 --- /dev/null +++ b/contrib/traceroute/usleep.c @@ -0,0 +1,32 @@ +#ifndef lint +static const char rcsid[] = + "@(#) $Id: usleep.c,v 1.1 2000/09/16 05:31:06 leres Exp $ (LBL)"; +#endif + +#include <sys/types.h> +#include <sys/time.h> + +#include <stdio.h> + +#include "gnuc.h" +#ifdef HAVE_OS_PROTO_H +#include "os-proto.h" +#endif + +int +usleep(register u_int useconds) +{ +#ifdef HAVE_NANOSLEEP + struct timespec ts; + + ts.tv_sec = useconds / 1000000; + ts.tv_nsec = (useconds % 1000000) * 1000; + return (nanosleep(&ts, NULL)); +#else + struct timeval tv; + + tv.tv_sec = useconds / 1000000; + tv.tv_usec = useconds % 1000000; + return (select(0, NULL, NULL, NULL, &tv)); +#endif +} |