TrueAsync v0.6.1
Install
Windows
| Build | Download |
|---|---|
| Release | php-trueasync-0.6.1-php8.6-windows-x64.zip |
| Debug | php-trueasync-0.6.1-php8.6-windows-x64-debug.zip |
| Checksums | sha256sums.txt |
Quick install (PowerShell):
irm https://raw.githubusercontent.com/true-async/releases/master/installer/install.ps1 | iexDocker (Linux)
docker pull trueasync/php-true-async:0.6.1-php8.6
docker run --rm trueasync/php-true-async:0.6.1-php8.6 php -v| Tag | Description |
|---|---|
0.6.1-php8.6 |
Ubuntu 24.04 |
0.6.1-php8.6-alpine |
Alpine |
0.6.1-php8.6-debug |
Debug build |
Build from Source (Linux)
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | bashBuild from Source (macOS)
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | bashDocumentation
Full documentation, API reference, and guides at true-async.github.io
What's Changed
Fixed
feof()on sockets unreliable on Windows:WSAPoll(timeout=0)fails to detect FIN packets on Windows, causingfeof()to return false on closed sockets. Fixed by skipping poll for liveness checks (value==0) and going directly torecv(MSG_PEEK). On Windows,MSG_DONTWAITis unavailable, so non-blocking mode is temporarily toggled viaioctlsocket. Errno is saved immediately afterrecvbecauseioctlsocketclearsWSAGetLastError(). Shared logic extracted intophp_socket_check_liveness()innetwork_async.cto eliminate duplication betweenxp_socket.candxp_ssl.c.- Pipe close error on Windows:
php_select()incorrectly skipped signaled pipe handles whennum_read_pipes >= n_handles, causing pipe-close events to be missed andproc_openreads to hang. Fixed by removing thenum_read_pipes < n_handlesguard soPeekNamedPipeis always called for signaled handles.
Full Changelog: v0.6.0...v0.6.1