Skip to content

v0.6.3

Choose a tag to compare

@EdmondDantes EdmondDantes released this 25 Mar 12:38
· 440 commits to main since this release

What's Changed

Fixed

  • Scope::awaitCompletion() deadlock: async_scope_notify_coroutine_finished() was not calling scope_check_completion_and_notify(), so awaitCompletion() always waited the full timeout even after all coroutines had finished. Also fixed awaitAfterCancellation to use ZEND_ASYNC_WAKER_DESTROY and correctly check zend_async_resume_when return value.

  • Scope dispose use-after-free: scope_dispose now keeps ref_count=1 as a guard during disposal and drops it only before efree. Removes a premature DEL_REF that caused use-after-free when finally handlers created child scopes. finally_handlers_iterator_dtor now uses ZEND_ASYNC_SCOPE_RELEASE to avoid double-decrement.

  • Poll event leak on negative stream timeout: In network_async.c, a negative tv_sec caused a poll event refcount leak. Fixed by guarding against negative timeout values.

Full Changelog: v0.6.2...v0.6.3