History log of /PHP-8.1/Zend/zend_fibers.c (Results 1 – 25 of 53)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 71f14510 09-Oct-2023 Daniil Gentili

Fix GH-11121: ReflectionFiber segfault

Closes GH-12391.

Co-authored-by: Aaron Piotrowski <aaron@trowski.com>


# 95016138 13-Feb-2023 Bob Weinand

Fix GH-10496: Fibers must not be garbage collected while implicitly suspended by resumption of another fiber


# d721dcc2 10-Feb-2023 Arnaud Le Blanc

Fix colletion of unfinished function call in fibers

Fixes GH-10496.

Co-authored-by: Bob Weinand <bobwei9@hotmail.com>


# 284c2932 28-Jan-2023 Aaron Piotrowski

Fix GH-10437: Set active fiber to null on bailout (#10443)


# 98302042 27-Jan-2023 Arnaud Le Blanc

Handle non-INDIRECT symbol table entries in zend_fiber_object_gc() (#10386)

Fixes GH-10340


# 4fb14939 13-Jan-2023 Arnaud Le Blanc

GC fiber unfinished executions (#9810)


# 833b45ac 10-Jan-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-10249: Assertion `size >= page_size + 1 * page_size' failed.

Co-authored-by: Changochen <changochen1@gmail.com>

Closes GH-10284


Revision tags: php-8.1.7RC1
# 040a37d3 26-Apr-2022 Chen

Add IBT support for fiber

Indirect Branch Tracking (IBT) is part of Intel's Control-Flow
Enforcement Technology (CET). IBT is hardware based, forward edge
Control-Flow-Integrity mech

Add IBT support for fiber

Indirect Branch Tracking (IBT) is part of Intel's Control-Flow
Enforcement Technology (CET). IBT is hardware based, forward edge
Control-Flow-Integrity mechanism where any indirect CALL/JMP must target
an ENDBR instruction or suffer #CP.

This commit adds IBT support for fiber:
1. Add endbr32/64 in assembly
2. Inform compiler jump_fcontext may return via indirect branch

Furthermore:
gcc support CET since v8.1 and set it to default since gcc 11. That is,
the ELF header of sapi/cli/php has a property named IBT. However, such
property is lost since PHP8.1 because the assembly introduced by Fiber.
This commit also fixes this.

Closes GH-8339

Signed-off-by: Chen, Hu <hu1.chen@intel.com>
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>

show more ...

Revision tags: php-8.1.4RC1, php-8.1.3, php-8.1.2RC1
# 069bbf3e 14-Dec-2021 Petr Sumbera

Fix zend_fibers.c build with ZEND_FIBER_UCONTEXT

Avoids (Solaris SPARC) issue:
zend_fibers.c:77:9: error: unknown type name 'ucontext_t'

Closes GH-7773.

Revision tags: php-8.1.0, php-7.3.33, php-7.3.32, php-7.3.31, php-7.3.30
# 578b785e 22-Jul-2021 Nikita Popov

Don't return reference from Fiber::getReturn()

Even if the fiber function returns by reference, we must return
a value from Fiber::getReturn() to satisfy the function signature.

Don't return reference from Fiber::getReturn()

Even if the fiber function returns by reference, we must return
a value from Fiber::getReturn() to satisfy the function signature.

Fixes oss-fuzz #36417.

show more ...

# 848b5458 21-Jul-2021 Joe Watkins

more fiber notifications (#7293)

# 576655e2 20-Jul-2021 Joe Watkins

drop unused header in fibers

# 814a9327 16-Jul-2021 Nikita Popov

Add ZEND_ACC_NOT_SERIALIZABLE flag

This prevents serialization and unserialization of a class and its
children in a way that does not depend on the zend_class_serialize_deny
and zend

Add ZEND_ACC_NOT_SERIALIZABLE flag

This prevents serialization and unserialization of a class and its
children in a way that does not depend on the zend_class_serialize_deny
and zend_class_unserialize_deny handlers that will be going away
in PHP 9 together with the Serializable interface.

In stubs, `@not-serializable` can be used to set this flag.

This patch only uses the new flag for a handful of Zend classes,
converting the remainder is left for later.

Closes GH-7249.
Fixes bug #81111.

show more ...

# 8fd747a2 11-Jul-2021 Aaron Piotrowski

Fiber ucontext support (#7226)

Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>

Revision tags: php-7.3.29
# aff36587 29-Jun-2021 Patrick Allaert

Fixed some spaces used instead of tabs

# 66442a51 28-Jun-2021 Aaron Piotrowski

Allow creating Graceful/UnwindExit and use when destroying a fiber (#7174)

Direct creation of GracefulExit allows the the special exception object to be transfered and thrown into a destroye

Allow creating Graceful/UnwindExit and use when destroying a fiber (#7174)

Direct creation of GracefulExit allows the the special exception object to be transfered and thrown into a destroyed fiber using the same path as any other exception thrown into a fiber instead of needing to check for a flag.

show more ...

# 7713302f 28-Jun-2021 Martin Schröder

Implemented Fiber GC handler

# 15dcdd76 19-Jun-2021 Aaron Piotrowski

Remove copying of fiber result to transfer value

Removes unnecessary copying of fiber return value to transfer value. This zval was not used as the return of start/resume/throw, instead bein

Remove copying of fiber result to transfer value

Removes unnecessary copying of fiber return value to transfer value. This zval was not used as the return of start/resume/throw, instead being destroyed when the fiber was dead. Now the zval initialized to NULL when starting the fiber is maintained as the transfer value and is subsequently returned from start/resume/throw.

show more ...

# f71d62e3 19-Jun-2021 Aaron Piotrowski

Fiber cleanup

Add zend_fiber prefix to delegate_transfer_result().

Ensure status is set to INIT when initializing the fiber context in case memory is not zeroed.

Assert des

Fiber cleanup

Add zend_fiber prefix to delegate_transfer_result().

Ensure status is set to INIT when initializing the fiber context in case memory is not zeroed.

Assert destination fiber context is not dead.

Update stack alloc failure messages.

getThis() -> ZEND_THIS

show more ...

# 865fb353 18-Jun-2021 Aaron Piotrowski

Rename Fiber::this() to Fiber::getCurrent() (#7155)

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

Flexible fiber bailout handling (#7163)

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

Do not expose fiber VM state management (#7170)

# 5d4f0552 15-Jun-2021 Aaron Piotrowski

Drop fiber block hooks

Removes the ability for an extension to allow Fiber switching in blocked contexts.

See discussion on fdc22744a8951b605a546ad6f09a2b907043bc54.

# ba3c8027 15-Jun-2021 Joe Watkins

Adds zend_fiber_startup at the right stage, moves setting of switch hooks
to correct stage

In a threaded environment, these ought to be set before any threads are
created, and they o

Adds zend_fiber_startup at the right stage, moves setting of switch hooks
to correct stage

In a threaded environment, these ought to be set before any threads are
created, and they ought to be set once.

show more ...

# f4606349 15-Jun-2021 Joe Watkins

reset blocking state on init

123