Re: Re: PHP 7.3 zif_handler changes
| From: | Nikita Popov | Date: | Wed, 04 Jul 2018 10:24:10 +0000 |
| Subject: | Re: Re: PHP 7.3 zif_handler changes | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-102570@lists.php.net to get a copy of this message | ||
On Wed, Jul 4, 2018 at 11:32 AM, Christoph M. Becker <cmbecker69@gmx.de>
wrote:
> On 04.07.2018 at 01:16, Jan Ehrhardt wrote:
>
> > Another one: some extensioms suffer from the fact that the macro GC_G
> > was removed from
> > https://github.com/php/php-src/blob/master/Zend/zend_gc.h
> > Some of the removed functionality has been reintroduced in gc_status
> >
> > https://github.com/php/php-src/commits/master/Zend/zend_gc.h
> >
> > Examples using GC_G: v8js, xdebug, tideways.
> > v8js was using gc_active to check if garbage collection was running.
> > I did a wild guess to fix it:
> >
> > https://github.com/Jan-E/v8js/commit/997df065d3cd06a9b11e399458c391
> eb797a850e#diff-dc446a69201ccda44a33d111152f6c8c
>
> This looks wrong, since zend_gc_collect_cycles() actually triggers the
> GC, if I'm not mistaken.
>
> It seems to me that should be something like:
>
> zend_gc_status status;
> zend_gc_get_status(&status);
> if (status.runs) {
>
The correct way to handle this is to implement a proper get_gc() handler,
which will be called in favor of get_properties() during GC.
Nikita