@@ -885,24 +885,10 @@ ZEND_API void zend_async_waker_callback_resolve(zend_async_event_t *event,
885885{
886886 zend_coroutine_t * coroutine = ((zend_coroutine_event_callback_t * ) callback )-> coroutine ;
887887
888- if (exception == NULL && coroutine -> waker != NULL ) {
889-
890- if (coroutine -> waker -> triggered_events == NULL ) {
891- coroutine -> waker -> triggered_events = (HashTable * ) emalloc (sizeof (HashTable ));
892- zend_hash_init (
893- coroutine -> waker -> triggered_events , 2 , NULL , waker_triggered_events_dtor , 0 );
894- }
895-
896- if (EXPECTED (zend_hash_index_add_ptr (
897- coroutine -> waker -> triggered_events , (zend_ulong ) event , event )
898- != NULL )) {
899- ZEND_ASYNC_EVENT_ADD_REF (event );
900- }
901-
888+ if (exception == NULL && coroutine -> waker != NULL
889+ && ZEND_ASYNC_EVENT_WILL_ZVAL_RESULT (event ) && result != NULL ) {
902890 // Copy the result to the waker if it is not NULL
903- if (ZEND_ASYNC_EVENT_WILL_ZVAL_RESULT (event ) && result != NULL ) {
904- ZVAL_COPY (& coroutine -> waker -> result , result );
905- }
891+ ZVAL_COPY (& coroutine -> waker -> result , result );
906892 }
907893
908894 if (exception != NULL ) {
@@ -962,7 +948,7 @@ ZEND_API zend_async_waker_t *zend_async_waker_new_with_timeout(
962948
963949 if (timeout > 0 ) {
964950 zend_async_resume_when (coroutine , & ZEND_ASYNC_NEW_TIMER_EVENT (timeout , false)-> base , true,
965- zend_async_waker_callback_resolve , NULL );
951+ zend_async_waker_callback_timeout , NULL );
966952 }
967953
968954 if (cancellation != NULL ) {
0 commit comments