v0.6.3
What's Changed
Fixed
-
Scope::awaitCompletion()deadlock:async_scope_notify_coroutine_finished()was not callingscope_check_completion_and_notify(), soawaitCompletion()always waited the full timeout even after all coroutines had finished. Also fixedawaitAfterCancellationto useZEND_ASYNC_WAKER_DESTROYand correctly checkzend_async_resume_whenreturn value. -
Scope dispose use-after-free:
scope_disposenow keepsref_count=1as a guard during disposal and drops it only beforeefree. Removes a prematureDEL_REFthat caused use-after-free whenfinallyhandlers created child scopes.finally_handlers_iterator_dtornow usesZEND_ASYNC_SCOPE_RELEASEto avoid double-decrement. -
Poll event leak on negative stream timeout: In
network_async.c, a negativetv_seccaused a poll event refcount leak. Fixed by guarding against negative timeout values.
Full Changelog: v0.6.2...v0.6.3