async: report the ABI version the header defines, and state the awaited writev's contract - #26
Merged
Merged
Conversation
EdmondDantes
force-pushed
the
abi-0.25-string-and-await-note
branch
from
August 20, 2026 19:37
03b83df to
f421d68
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Header-only, two commits.
The banner lagged the number.
1ae0254f368raisedZEND_ASYNC_API_VERSION_MINORto 25and left
ZEND_ASYNC_APIat"TrueAsync ABI v0.24.0", sophp -vnames 0.24 on a 0.25build. Every earlier bump moved both lines.
Three things the writev doc did not say. A ZSTR batch holds at most 65535 buffers,
because the request stores the slot count in a
uint16_t.nbufs == 0is the one NULLreturn that raises no exception. And disposing an awaited request is safe after its handle
is gone: the completion drops the request's link to the handle before handing it over, so
the awaiter's dispose touches nothing that can have been freed. The reactor side of that
last one is true-async/php-async#263.