mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-18 12:29:32 +08:00
2006-06-05 Shaun Jackman <sjackman@gmail.com>
* libc/posix/Makefile.am (GENERAL_SOURCES): Add sleep.c and usleep.c. * libc/posix/Makefile.in: Regenerate. * libc/posix/sleep.c: New file. * libc/posix/usleep.c: Ditto.
This commit is contained in:
parent
c281fc320f
commit
9b15ac9054
22
newlib/libc/posix/sleep.c
Normal file
22
newlib/libc/posix/sleep.c
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* libc/posix/sleep.c - sleep function */
|
||||||
|
|
||||||
|
/* Written 2000 by Werner Almesberger */
|
||||||
|
|
||||||
|
#ifdef HAVE_NANOSLEEP
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
unsigned sleep(unsigned seconds)
|
||||||
|
{
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
|
ts.tv_sec = seconds;
|
||||||
|
ts.tv_nsec = 0;
|
||||||
|
if (!nanosleep(&ts,&ts)) return 0;
|
||||||
|
if (errno == EINTR) return ts.tv_sec;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
22
newlib/libc/posix/usleep.c
Normal file
22
newlib/libc/posix/usleep.c
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* libc/posix/usleep.c - usleep function */
|
||||||
|
|
||||||
|
/* Written 2002 by Jeff Johnston */
|
||||||
|
|
||||||
|
#ifdef HAVE_NANOSLEEP
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
int usleep(useconds_t useconds)
|
||||||
|
{
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
|
ts.tv_sec = (long int)useconds / 1000000;
|
||||||
|
ts.tv_nsec = ((long int)useconds % 1000000) * 1000;
|
||||||
|
if (!nanosleep(&ts,&ts)) return 0;
|
||||||
|
if (errno == EINTR) return ts.tv_sec;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user