diff options
| author | Zeev Suraski <zeev@php.net> | 2000-06-16 14:27:28 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2000-06-16 14:27:28 +0000 |
| commit | 84eb48f0a1fd0a8be0f09ad3b77697922d2b5bfb (patch) | |
| tree | b414a535f91f70602b6e9bc29e82bab898306232 /Zend/zend_execute.c | |
| parent | 43d91224f6f54476b714eca50bd7caddb1d99ffd (diff) | |
| download | php-git-84eb48f0a1fd0a8be0f09ad3b77697922d2b5bfb.tar.gz | |
Ok, this time here's some real Win32 system programming :)
Redesigned the timeout system using a single timeout thread and a single window,
and used a much quicker check.
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 8fff13acb9..c3a08c2735 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -65,19 +65,6 @@ static void zend_extension_statement_handler(zend_extension *extension, zend_op_ static void zend_extension_fcall_begin_handler(zend_extension *extension, zend_op_array *op_array); static void zend_extension_fcall_end_handler(zend_extension *extension, zend_op_array *op_array); -#ifdef ZEND_WIN32 -#define ZEND_CHECK_TIMEOUT() \ - { \ - MSG timeout_message; \ - \ - while (PeekMessage(&timeout_message, EG(timeout_window), 0, 0, PM_REMOVE)) { \ - DispatchMessage(&timeout_message); \ - } \ - } -#else -#define ZEND_CHECK_TIMEOUT() -#endif - #define SEPARATE_ON_READ_OBJECT(obj, _type) \ if ((obj) && ((_type) == BP_VAR_R) && ((*(obj))->type == IS_OBJECT)) { \ @@ -1005,7 +992,11 @@ void execute(zend_op_array *op_array ELS_DC) #else while (1) { #endif - ZEND_CHECK_TIMEOUT(); +#ifdef ZEND_WIN32 + if (EG(timed_out)) { + zend_timeout(0); + } +#endif switch(opline->opcode) { case ZEND_ADD: EG(binary_op) = add_function; @@ -2374,6 +2365,7 @@ send_by_ref: case ZEND_NOP: NEXT_OPCODE(); EMPTY_SWITCH_DEFAULT_CASE() + } } #if SUPPORT_INTERACTIVE |
