Hi,
Attached is a fix for bug #25543 (Error in set_error_handler() definition),
which is caused by disordered scheduling of the garbage collection
(zend_clean_garbage()).
With this patch I'm adding the following two inline functions,
zend_begin_atomic() and zend_end_atomic(), to prevent GC from being
performed at the right time. Calls to those functions are inserted
at the beginning / end of zend_fetch_dimension_address(),
zend_fetch_property_address(), and some other functions of the same kind.
I'll commit these shortly if you don't see any problem.
Regards,
Moriyoshi
#25543 is documentation 'bug', what exactly does your
patch fix? I don't see anything wrong with `set_error_handler()`..
--Jani
Hi,
Attached is a fix for bug #25543 (Error in
set_error_handler()definition),
which is caused by disordered scheduling of the garbage collection
(zend_clean_garbage()).With this patch I'm adding the following two inline functions,
zend_begin_atomic() and zend_end_atomic(), to prevent GC from being
performed at the right time. Calls to those functions are inserted
at the beginning / end of zend_fetch_dimension_address(),
zend_fetch_property_address(), and some other functions of the same kind.I'll commit these shortly if you don't see any problem.
Regards,
Moriyoshi
#25543 is documentation 'bug', what exactly does your patch fix? I don't see anything wrong with `set_error_handler()`.. --JaniAttached is a fix for bug #25543 (Error in
set_error_handler()
definition), which is caused by disordered scheduling of the garbage
collection (zend_clean_garbage()).
as the patch filenames suggest he meant to fix bug
#25547 (error_handler and array index with function call).
--
ralf willenbacher (bj@ocrana.de)
Hi,
I don't like this patch because already the gc is a very sensitive
mechanism and we're not allowed to collect too much or too little at any
given time. Your patch can easily lead to too much being collected before
previous zval's are freed which can lead to problems (this mechanism was
refined a couple of times due to such problems).
The only real solution I can see is to nuke the garbage completely. I
already have a rough idea of how to do it but it requires quite a lot of work.
BTW, I didn't quite understand the bug report 25543. It doesn't seem to be
very well written (I know it's not you :)
Andi
At 09:32 AM 10/3/2003 +0900, Moriyoshi Koizumi wrote:
Hi,
Attached is a fix for bug #25543 (Error in
set_error_handler()definition),
which is caused by disordered scheduling of the garbage collection
(zend_clean_garbage()).With this patch I'm adding the following two inline functions,
zend_begin_atomic() and zend_end_atomic(), to prevent GC from being
performed at the right time. Calls to those functions are inserted
at the beginning / end of zend_fetch_dimension_address(),
zend_fetch_property_address(), and some other functions of the same kind.I'll commit these shortly if you don't see any problem.
Regards,
Moriyoshi