Skip to content

Commit e499a4d

Browse files
committed
Merge remote-tracking branch 'origin/53-optimize-descriptor-registration-in-event-loop' into 53-optimize-descriptor-registration-in-event-loop
2 parents 362e937 + 47b218c commit e499a4d

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

CHANGELOG.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,35 @@ All notable changes to the Async extension for PHP will be documented in this fi
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and 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

Comments
 (0)