summaryrefslogtreecommitdiffstats
path: root/winsup/mingw/mingwex/usleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/mingw/mingwex/usleep.c')
-rwxr-xr-xwinsup/mingw/mingwex/usleep.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/winsup/mingw/mingwex/usleep.c b/winsup/mingw/mingwex/usleep.c
new file mode 100755
index 000000000..b322a7703
--- /dev/null
+++ b/winsup/mingw/mingwex/usleep.c
@@ -0,0 +1,40 @@
+/*
+ * usleep
+ * Implementation according to:
+ * The Open Group Base Specifications Issue 6
+ * IEEE Std 1003.1, 2004 Edition
+ */
+
+/*
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Contributed by:
+ * Ramiro Polla <ramiro@lisha.ufsc.br>
+ */
+
+#include <sys/types.h>
+#include <errno.h>
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+int __cdecl usleep(useconds_t useconds)
+{
+ if(useconds == 0)
+ return 0;
+
+ if(useconds >= 1000000)
+ return EINVAL;
+
+ Sleep(useconds / 1000);
+
+ return 0;
+}