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]

Reply via email to