Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:102571 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75614 invoked from network); 4 Jul 2018 10:32:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 Jul 2018 10:32:35 -0000 Authentication-Results: pb1.pair.com header.from=cmbecker69@gmx.de; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=cmbecker69@gmx.de; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.de designates 212.227.17.22 as permitted sender) X-PHP-List-Original-Sender: cmbecker69@gmx.de X-Host-Fingerprint: 212.227.17.22 mout.gmx.net Received: from [212.227.17.22] ([212.227.17.22:58581] helo=mout.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 03/D1-55607-042AC3B5 for ; Wed, 04 Jul 2018 06:32:34 -0400 Received: from [192.168.2.102] ([79.222.41.233]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M35iN-1gR7Pe0VU7-00swYi; Wed, 04 Jul 2018 12:32:29 +0200 To: Nikita Popov Cc: Jan Ehrhardt , PHP internals References: <15n3jdpoiprladjh50u6r2nn1hlmmvea3p@4ax.com> <87863116-5de1-c44d-d751-51e9327807f2@gmx.de> <66c6jdhurlnsaqlegs0epd56b7skj0n20v@4ax.com> <6fa23528-ddcd-d998-50cd-ddabcb038b45@gmx.de> <9274549c-4d08-7a68-77c3-aedfe6dc0962@gmx.de> Message-ID: <95d3db78-235e-ae54-4d24-8088914afad0@gmx.de> Date: Wed, 4 Jul 2018 12:32:29 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:nGZzucvy+SUnw+SsaN6CMiQbZBIi8skYreZRG7mdwkCAdDqaWq1 d7B0aqaTdKnp5GchwQKYGim6VIYHximDl2PAtbsQpeMe2ZdXz4+8IX6pwurpO07qZeyYCdz pZQsF0auoZz6vqV3OLfAvlQXFFCgnqh2n2Oexo72NUZW/oOhkxwNBiQwAWneB/P5lyDOty/ a1O6bCCF+Y2ujH94En3Cw== X-UI-Out-Filterresults: notjunk:1;V01:K0:9bF37mL1H/k=:egp82ot3EnZ7O9pV7BI2Zx kYfPMwcJdpni04YYFk1xZLjzhGXzJlzWJUH3urxEzFlgudTmmGIeBSl53hLV8/47BotRnlovD mEpUu7nvHNa7Q2I2EjWfkQc7De5mliy0UsnKT6VeYM7oWzh50xla+vm9Tlwl4YbetzE33W3rB 6V83inLpGiqEXOLTWI6dHbWAY0dd5beu7PRepcqtBhhvSlotx/8wRCt6lGefo91PSRho45IN+ D7TajQD0VO4HbkcM7iyEZ3Wr2tYnmsTGGIzXciIR6BDU2H025YCV25C+qvKwYu6TsoR0HJsKg 210j6nzNYjALdAyIeZtawMzHIOuCBrjrwsvX8tB6xLipkRkCAAdLHCNiEL8/zKyvOTSnYecwF QzWMuyIdYLmdTUW//z1gMkWRz0yCZ4czGc0bVA4s4LPobtGZbwt7zhvd+uPdRCLTYSzOWKcvE Odxk611PaMkQ8iAQuhRMCwNN+QFuPLbNFRZGLoJaWYVivrSu+ilt7xTZSKnaSOsoz5lFYhJLV DtZbTLHHaHjhQIx8HcCX/v4j47/PhkqTHuIPDIkXWC1jVNQVBGnSZ5hhkxP4E0re9v80cr+RY GoLa2DjYIN8nl6UdJWn4dQK8Lhf3it0XPHKsvZLeJf3mxn6YIe3hybtURXJ2BaaJMvopOvMrQ JooTzoFlfyCN6qH2huMyfrnlA6alzZKP5Vdg4CJeJHyS0azrIIeGFVqW9dHZr1Zhns0lutvnu 5jk0IVCuO7LreW3+10eHIiFTA2Thebc9dZgH8ewwwkjJZOozP9j7vnJspUvxhGa7v2eQPfQYh zJ8S/Zj Subject: Re: [PHP-DEV] Re: PHP 7.3 zif_handler changes From: cmbecker69@gmx.de ("Christoph M. Becker") On 04.07.2018 at 12:24, Nikita Popov wrote: > On Wed, Jul 4, 2018 at 11:32 AM, Christoph M. Becker > 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. Ah, thanks! In some other cases, for instance, in Xdebug[1], using zend_gc_get_status() would be correct, wouldn't it? [1] -- Christoph M. Becker