Skip to content

Commit eb0ebae

Browse files
committed
Move setting execute_data into static zend_fiber API
1 parent d4ff572 commit eb0ebae

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

Zend/zend_fibers.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,10 +388,6 @@ ZEND_API void zend_fiber_switch_context(zend_fiber_transfer *transfer)
388388

389389
zend_observer_fiber_switch_notify(from, to);
390390

391-
if (from->kind == zend_ce_fiber) {
392-
zend_fiber_from_context(from)->execute_data = EG(current_execute_data);
393-
}
394-
395391
zend_fiber_capture_vm_state(&state);
396392

397393
to->status = ZEND_FIBER_STATUS_RUNNING;
@@ -558,6 +554,10 @@ static zend_always_inline zend_fiber_transfer zend_fiber_resume(zend_fiber *fibe
558554
{
559555
zend_fiber *previous = EG(active_fiber);
560556

557+
if (previous) {
558+
previous->execute_data = EG(current_execute_data);
559+
}
560+
561561
fiber->caller = EG(current_fiber_context);
562562
EG(active_fiber) = fiber;
563563

@@ -575,6 +575,7 @@ static zend_always_inline zend_fiber_transfer zend_fiber_suspend(zend_fiber *fib
575575
zend_fiber_context *caller = fiber->caller;
576576
fiber->previous = EG(current_fiber_context);
577577
fiber->caller = NULL;
578+
fiber->execute_data = EG(current_execute_data);
578579

579580
return zend_fiber_switch_to(caller, value, false);
580581
}
@@ -745,7 +746,6 @@ ZEND_METHOD(Fiber, suspend)
745746

746747
ZEND_ASSERT(fiber->context.status == ZEND_FIBER_STATUS_RUNNING || fiber->context.status == ZEND_FIBER_STATUS_SUSPENDED);
747748

748-
fiber->execute_data = EG(current_execute_data);
749749
fiber->stack_bottom->prev_execute_data = NULL;
750750

751751
zend_fiber_transfer transfer = zend_fiber_suspend(fiber, value);

0 commit comments

Comments
 (0)