well, AFAIK the usleep function is (mainly) useful to release cpu time for
other tasks. the performance counter is probably more accurate but does
consume a lot of cpu power without sleeping...
-c
-----Original Message-----
From: Sean R. Bright [mailto:[EMAIL PROTECTED]]
Sent: lundi 15 janvier 2001 15:46
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: [PHP-DEV] PHP 4.0 Bug #8728 Updated: Patch: usleep()
working on win32 platforms
Christophe:
I could be wrong but I would assume that the Performance counter allows more
flexibility then Sleep() does by the simple fact that it doesn't suspend
execution. Am I wrong?
Sean
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Monday, January 15, 2001 6:40 PM
> To: [EMAIL PROTECTED]
> Subject: [PHP-DEV] PHP 4.0 Bug #8728 Updated: Patch: usleep()
> working on
> win32 platforms
>
>
> ID: 8728
> User Update by: [EMAIL PROTECTED]
> Status: Open
> Bug Type: Feature/Change Request
> Description: Patch: usleep() working on win32 platforms
>
> oops... my previous patch was incorrect, let me start over:
> in main/config.w32.h, line 93: /* Define if you have the
> usleep function. */ #undef HAVE_USLEEP change it to: /*
> Define if you have the usleep function. */ #define
> HAVE_USLEEP 1 in win32/time.c, line 53: void
> usleep(unsigned int useconds) { __int64 mstimer, freq;
> long now, then; if
> (QueryPerformanceFrequency((LARGE_INTEGER *) & freq)) {
> QueryPerformanceCounter((LARGE_INTEGER *) & mstimer);
> now = (long) (((__int64) (mstimer * .8)) % 0x0FFFFFFF);
> then = now + useconds; while (now <
> then) {
> QueryPerformanceCounter((LARGE_INTEGER *) & mstimer);
> now = (long) (((__int64) (mstimer * .8)) %
> 0x0FFFFFFF); } } else {
> /*workaround for systems without performance counter
> this is actualy a millisecond sleep */
> Sleep((int) (useconds / 1000)); } } change it to:
> void usleep(unsigned int useconds) { #if 0 __int64
> mstimer, freq; long now, then; if
> (QueryPerformanceFrequency((LARGE_INTEGER *) & freq)) {
> QueryPerformanceCounter((LARGE_INTEGER *) & mstimer);
> now = (long) (((__int64) (mstimer * .8)) % 0x0FFFFFFF);
> then = now + useconds; while (now <
> then) {
> QueryPerformanceCounter((LARGE_INTEGER *) & mstimer);
> now = (long) (((__int64) (mstimer * .8)) %
> 0x0FFFFFFF); } } else {
> /*workaround for systems without performance counter
> this is actualy a millisecond sleep */
> Sleep((int) (useconds / 1000)); } #else Sleep((DWORD)
> useconds); #endif } and now it works great :) can someone
> reflect this patch in the cvs tree? -Christophe Thibault
> Nullsoft (www.nullsoft.com/www.winamp.com)
>
> Previous Comments:
> --------------------------------------------------------------
> -------------
>
> [2001-01-15 18:22:56] [EMAIL PROTECTED]
> usleep exists on Win32 as the Sleep command (it takes a
> millisecond value as parameter) so here is the patch for
> making the usleep() php function to work on win32 platforms:
> in main/win95nt.h, line 27: #define php_sleep(t)
> Sleep(t*1000) add the following line so it looks like:
> #define php_sleep(t) Sleep(t*1000) #define usleep(t)
> Sleep(t) and in config.w32.h, line 93: /* Define if you
> have the usleep function. */ #undef HAVE_USLEEP change it
> to: /* Define if you have the usleep function. */ #define
> HAVE_USLEEP 1 -Christophe Thibault Nullsoft
(www.nullsoft.com/www.winamp.com)
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=8728
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]