On Thu, Dec 23, 2021 at 5:32 AM Christoph M. Becker <cmbecke...@gmx.de> wrote: > > On 22.12.2021 at 22:44, Jakub Zelenka wrote: > > > After thinking about this a bit more I think we would still need some way > > to provide the current functionality of the MINIT if that's moved on child > > level. The problem with not having such step is that opcache shm would be > > then segmented between children - each child process would have its own shm > > so it means that it would likely break things like opcache_reset that would > > work only for a single child but wouldn't have any impact on other > > children. > > I think the children could still re-attach to OPcache (like on Windows), > and that might not even be that bad as on Windows (where ASLR can break > that). However, forking late might break preloading (not sure), and > generally re-attaching isn't the nicest solution.
I remember some similar issues a while back. I wonder if it could make sense to separate these two flows. The MINIT is critical to many extensions, not doing fancy things like OpCache or similar. Would it be possible to split them? One actual MINIT (as per doc, once per process) and one for more fancy stuff like what is done in OpCache (or apcu afair)? I can't think of another way to make the MINIT/SHUTDOWN API behave as it should while being designed before fpm came to life. Or we let the ext developers handle it themselves by providing some helpers function about the current stage the ext is in (root process or childs) but that will be painful to do and port. Best, -- Pierre @pierrejoye | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php