pajoye Mon Jan 19 02:29:24 2009 UTC
Modified files:
/php-src/win32 time.c time.h unistd.h
Log:
- add nanosleep
- expose nanosleep and usleep
- [DOC] time_ nanosleep and time_ sleep_ until available on windows
http://cvs.php.net/viewvc.cgi/php-src/win32/time.c?r1=1.12&r2=1.13&diff_format=u
Index: php-src/win32/time.c
diff -u php-src/win32/time.c:1.12 php-src/win32/time.c:1.13
--- php-src/win32/time.c:1.12 Thu Aug 14 23:21:32 2008
+++ php-src/win32/time.c Mon Jan 19 02:29:24 2009
@@ -11,7 +11,7 @@
*
*****************************************************************************/
-/* $Id: time.c,v 1.12 2008/08/14 23:21:32 kalle Exp $ */
+/* $Id: time.c,v 1.13 2009/01/19 02:29:24 pajoye Exp $ */
/**
*
@@ -127,7 +127,7 @@
return 0;
}
-void usleep(unsigned int useconds)
+PHPAPI int usleep(unsigned int useconds)
{
HANDLE timer;
LARGE_INTEGER due;
@@ -138,6 +138,17 @@
SetWaitableTimer(timer, &due, 0, NULL, NULL, 0);
WaitForSingleObject(timer, INFINITE);
CloseHandle(timer);
+ return 0;
+}
+
+PHPAPI int nanosleep( const struct timespec * rqtp, struct timespec * rmtp )
+{
+ if (rqtp->tv_nsec > 999999999) {
+ /* The time interval specified 1,000,000 or more microseconds.
*/
+ errno = EINVAL;
+ return -1;
+ }
+ return usleep( rqtp->tv_sec * 1000000 + rqtp->tv_nsec / 1000 );
}
#if 0 /* looks pretty ropey in here */
http://cvs.php.net/viewvc.cgi/php-src/win32/time.h?r1=1.9&r2=1.10&diff_format=u
Index: php-src/win32/time.h
diff -u php-src/win32/time.h:1.9 php-src/win32/time.h:1.10
--- php-src/win32/time.h:1.9 Tue Feb 18 13:34:52 2003
+++ php-src/win32/time.h Mon Jan 19 02:29:24 2009
@@ -28,6 +28,14 @@
struct timeval it_value; /* current value */
};
+#ifndef timespec
+struct timespec
+{
+ time_t tv_sec; /* seconds */
+ long tv_nsec; /* nanoseconds */
+};
+#endif
+
#define ITIMER_REAL 0 /*generates sigalrm */
#define ITIMER_VIRTUAL 1 /*generates sigvtalrm */
#define ITIMER_VIRT 1 /*generates sigvtalrm */
@@ -40,4 +48,6 @@
PHPAPI extern int setitimer(int which, const struct itimerval *value,
struct itimerval *ovalue);
+PHPAPI int nanosleep( const struct timespec * rqtp, struct timespec * rmtp );
+
#endif
http://cvs.php.net/viewvc.cgi/php-src/win32/unistd.h?r1=1.2&r2=1.3&diff_format=u
Index: php-src/win32/unistd.h
diff -u php-src/win32/unistd.h:1.2 php-src/win32/unistd.h:1.3
--- php-src/win32/unistd.h:1.2 Thu Jun 28 23:28:25 2001
+++ php-src/win32/unistd.h Mon Jan 19 02:29:24 2009
@@ -1,4 +1,4 @@
#ifndef _PHP_WIN32_UNISTD_H
#define _PHP_WIN32_UNISTD_H
-void usleep(unsigned int useconds);
+PHPAPI int usleep(unsigned int useconds);
#endif