> On Feb 3, 2021, at 11:32 AM, Aaron Piotrowski <[email protected]> wrote:
>
>
>> On Jan 31, 2021, at 11:29 AM, Levi Morrison via internals
>> <[email protected]> wrote:
>>
>> I think it would probably be advantageous to have an observer that
>> alerts interested parties when the fiber switches. This way we can
>> avoid querying the current fiber on every fcall.
>>
>
> Hi Levi,
>
> Yes, I agree and will look at implementing an observer API.
>
> Cheers,
> Aaron Piotrowski
>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: https://www.php.net/unsub.php
>> <https://www.php.net/unsub.php>
Hi Levi,
I implemented an observer that notifies registered handlers whenever the
current fiber context is switched.
typedef void (*zend_observer_fiber_switch_handler)(zend_fiber *from, zend_fiber
*to);
PHP_FIBER_API void
zend_observer_fiber_switch_register(zend_observer_fiber_switch_handler handler);
This works similar to the error observer API.
zend_fiber provides access to a unique ID, zend_execute_data, etc. that should
be sufficient for code profilers, debuggers, etc. One pointer is NULL if {main}
is the from or to fiber. The handlers are invoked before switching to the fiber
and after suspending from a fiber.
Let me know if there’s something missing or improvements that could be made.
Cheers,
Aaron Piotrowski
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php