We've had working usleep on windows since november 2003 in the PHP 5 branch.
Check out win32/time.c
--Wez.
On 1/27/06, Tom Rogers <[EMAIL PROTECTED]> wrote:
> Hi
>
> Here is a small change to usleep so it will work with win32.
> It is very useful for tight while loops when using socket functions
> and reduces cpu load from 100% to 0%-2% (on my win2k box) by just
> adding usleep(1000); after the while().
> (Code snippet was taken from pgsql)
>
> Diff is from php-4.4 cvs
>
> RCS file: /repository/php-src/ext/standard/basic_functions.c,v
> retrieving revision 1.543.2.51.2.6
> diff -u -w -b -r1.543.2.51.2.6 basic_functions.c
> --- basic_functions.c 1 Jan 2006 13:46:57 -0000 1.543.2.51.2.6
> +++ basic_functions.c 27 Jan 2006 00:52:10 -0000
> @@ -1677,14 +1677,20 @@
> Delay for a given number of micro seconds */
> PHP_FUNCTION(usleep)
> {
> -#if HAVE_USLEEP
> pval **num;
>
> if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) ==
> FAILURE) {
> WRONG_PARAM_COUNT;
> }
> convert_to_long_ex(num);
> +#if HAVE_USLEEP
> usleep(Z_LVAL_PP(num));
> +#else
> +#ifdef PHP_WIN32
> + do {
> + SleepEx((Z_LVAL_PP(num) < 500 ? 1 : (Z_LVAL_PP(num) + 500) /
> 1000), TRUE);
> + } while(0);
> +#endif
> #endif
> }
> /* }}} */
>
>
>
>
> --
>
> Tom
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php