History log of /PHP-8.4/Zend/zend_fibers.c (Results 51 – 69 of 69)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e2e770c4 05-Jun-2021 twosee

Fix undefined return value of fiber after bailout (#7103)


# 42dbd1f0 05-Jun-2021 Aaron Piotrowski

Improve Fiber::getReturn()

Allows flags besides ZEND_FIBER_FLAG_THREW to be set without causing this method to throw.

The method will not be called after a bailout, so the ZEND_FIBE

Improve Fiber::getReturn()

Allows flags besides ZEND_FIBER_FLAG_THREW to be set without causing this method to throw.

The method will not be called after a bailout, so the ZEND_FIBER_FLAG_BAILOUT case was removed.

show more ...


# a65989b1 05-Jun-2021 Martin Schröder <53789145+kooldev@users.noreply.github.com>

Alternative Fiber Internals Refactoring (#7101)


# d2e52038 03-Jun-2021 Aaron Piotrowski

Split fiber status and flags (#7094)

Co-Authored-By: twosee <twose@qq.com>


Revision tags: php-8.0.7, php-7.4.20
# 7e11b4d3 28-May-2021 twosee

Improve memory allocation related code in zend_fibers (#7058)

- make_fcontext() never returns NULL.
- Show syscall error info in exception just like zend_alloc does (we also used php_win

Improve memory allocation related code in zend_fibers (#7058)

- make_fcontext() never returns NULL.
- Show syscall error info in exception just like zend_alloc does (we also used php_win32_error_*() in Zend).
- MAP_ANON was marked as deprecated or compatibility macro on Linux, It would be better to use MAP_ANONYMOUS first.
- Makes the code consistent with the code of other modules in the kernel.
- adds some comments.

show more ...


# 795efd76 27-May-2021 twosee

Add zend_getpagesize() and reuse it in accelerator and fiber (#7057)


# 3939c9b0 27-May-2021 Aaron Piotrowski

Add internal Fiber API (#7045)

This additional internal fiber API creates and manipulates a Fiber object, allowing any internal function to start, resume, or suspend a fiber. The existing ze

Add internal Fiber API (#7045)

This additional internal fiber API creates and manipulates a Fiber object, allowing any internal function to start, resume, or suspend a fiber. The existing zend_fiber_context API allows custom C-based fiber creation using the bundled switching context, but does not interact with the PHP VM. This API behaves the same as calling Fiber object methods from user code, switching EGs, and triggering the fiber switch observer. In general, the Fiber object methods call these new API methods.

show more ...


# 0e2ac303 27-May-2021 twosee

Use ZEND_WIN32 instead of PHP_WIN32 (#7055)


Revision tags: php-8.0.7RC1, php-7.4.20RC1
# 3c3ec441 09-May-2021 Aaron Piotrowski

Move fiber stack allocation within try

If VM stack allocation fails, the bailout will be caught within the fiber.


# 5fb03758 08-May-2021 Aaron Piotrowski

Rename sanitizer members for clarity

These members hold the prior stack pointer and size, so bottom and capacity were poor name choices, prior_pointer and prior_size are more clear.


# af290596 07-May-2021 Aaron Piotrowski

Add sanitizer fiber switching support


# ccc069d0 06-May-2021 Aaron Piotrowski

Catch and repeat zend_bailout in fibers

This removes switching to main for fatal errors in fibers in favor of catching any zend_bailout in a fiber and calling zend_bailout again after switch

Catch and repeat zend_bailout in fibers

This removes switching to main for fatal errors in fibers in favor of catching any zend_bailout in a fiber and calling zend_bailout again after switching to the previous fiber or {main}.

show more ...


# 779fe8e4 05-May-2021 Aaron Piotrowski

Check current_execute_data instead of flags in fiber destructor

Checking EG(current_exectue_data) throws into the previous fiber instead of triggering a fatal error during shutdown. A fatal

Check current_execute_data instead of flags in fiber destructor

Checking EG(current_exectue_data) throws into the previous fiber instead of triggering a fatal error during shutdown. A fatal error is triggered only if the throwing destroyed fiber was resumed from {main}.

show more ...


# fb374f56 05-May-2021 Nikita Popov

Rethrow exceptions in fiber destructor

We need to make sure that HANDLE_EXCEPTION is set when the fiber
throws during destruction.

Fixes oss-fuzz #33875.


Revision tags: php-8.0.6, php-7.4.19, php-7.4.18, php-7.3.28, php-8.0.5
# 810fb59f 26-Apr-2021 Aaron Piotrowski

Improve fiber backtraces

The start/resume/throw execute_data is now attached as the prev_execute_data to the bottom frame of the fiber stack when the fiber is running.


# f3465e67 30-Apr-2021 Aaron Piotrowski

Minor fiber fixes

Assert error is fatal when calling zend_error_suspend_fiber.

Added missing static.

Removed .S extension from output of configure.


# 41666532 30-Apr-2021 Aaron Piotrowski

Fix exception thrown during fiber destruction

Previously an exception thrown during fiber destruction resulted in a fatal error, but that exception should be able to be caught (unless we’ve

Fix exception thrown during fiber destruction

Previously an exception thrown during fiber destruction resulted in a fatal error, but that exception should be able to be caught (unless we’ve entered shutdown, then still use a fatal error so the error is not hidden).

show more ...


# e8e7c04a 29-Apr-2021 Nikita Popov

Use common struct to store error information

This is needed by both fibers and opcache (and GH-6903 also uses it),
so make it a common structure that can be used by any functionality

Use common struct to store error information

This is needed by both fibers and opcache (and GH-6903 also uses it),
so make it a common structure that can be used by any functionality
storing warnings/errors.

show more ...


# c276c16b 26-Apr-2021 Aaron Piotrowski

Implement Fibers

RFC: https://wiki.php.net/rfc/fibers

Closes GH-6875.


123