@@ -5,7 +5,35 @@ All notable changes to the Async extension for PHP will be documented in this fi
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ Unreleased]
8+ ## [ 0.4.0] - 2025-09-31
9+
10+ ### Added
11+ - ** UDP socket stream support for TrueAsync**
12+ - ** SSL support for socket stream**
13+ - ** Poll Proxy** : New ` zend_async_poll_proxy_t ` structure for optimized file descriptor management
14+ - Efficient caching of event handlers to reduce EventLoop creation overhead
15+ - Poll proxy event aggregation and improved lifecycle management
16+
17+ ### Fixed
18+ - ** Fixing ` ref_count ` logic for the ` zend_async_event_callback_t ` structure** :
19+ - The add/dispose methods correctly increment the counter
20+ - Memory leaks fixed
21+ - Fixed await iterator logic for ` awaitXXX ` functions
22+
23+ ### Changed
24+ - ** Memory Optimization** : Enhanced memory allocation for async structures
25+ - Optimized waker trigger structures with improved memory layout
26+ - Enhanced memory management for poll proxy events
27+ - Better resource cleanup and lifecycle management
28+ - ** Event Loop Performance** : Major scheduler optimizations
29+ - ** Automatic Event Cleanup** : Added automatic waker event cleanup when coroutines resume (see ` ZEND_ASYNC_WAKER_CLEAN_EVENTS ` )
30+ - Separate queue implementation for resumed coroutines to improve stability
31+ - Reduced unnecessary LibUV calls in scheduler tick processing
32+ - ** Socket Performance** :
33+ - Event handler caching for sockets to avoid constant EventLoop recreation
34+ - Optimized ` network_async_accept_incoming ` to try ` accept() ` before waiting
35+ - Enhanced stream_select functionality with event-driven architecture
36+ - Improved blocking operation handling with boolean return values
937
1038## [ 0.3.0] - 2025-07-16
1139
0 commit comments