✨ New Features:
- Added
non-blocking, reentrant coroutine mutex lock
, which can be used between processes/threads without blocking them. @NathanFreeman Swoole\Coroutine\Socket::getOption()
supports theTCP_INFO
option. @matyhtfSwoole\Client
synchronous blocking client supportshttp
proxy. @matyhtf- Added asynchronous non-blocking
TCP/UDP/Unix socket
clientSwoole\Async\Client
. @matyhtf - Optimized the
Swoole\Redis\Server::format()
method to support zero-copy memory, supportredis
nested structure. @matyhtf
🐛 Bug Fixes:
- Fixed
Fatal error
issue caused byPHP-8.4
'stimeout
feature in ZTS mode. @matyhtf - Fixed compatibility issue with the
exit()
hook
function forPHP-8.4
. @remicollet - Fixed the issue where
Swoole\Thread::getNativeId()
did not work incygwin
. @matyhtf - Fixed the issue causing
SIGSEGV
inSwoole\Coroutine::getaddrinfo()
method. @matyhtf - Fixed the issue where the runtime TCP module did not support dynamically enabling SSL encryption. @matyhtf
- Fixed the issue where the HTTP client had an incorrect timeout after running for a long time. @matyhtf
- Fixed the problem where the mutex lock of
Swoole\Table
could not be used before the process exited. @matyhtf - Fixed the failure of
Swoole\Server::stop()
when using named parameters. @matyhtf - Fixed the crash caused by
Swoole\Thread\Map::toArray()
not copying the key. @matyhtf - Fixed the issue of being unable to delete nested numeric keys in
Swoole\Thread\Map
. @matyhtf
⭐️ Kernel Optimization:
- Multi-thread mode
SWOOLE_THREAD
supports restarting worker threads. @matyhtf - Multi-thread mode
SWOOLE_THREAD
supports starting timers in theManager
thread. @matyhtf - Compatible with the
curl
extension ofPHP-8.4
. @matyhtf @NathanFreeman - Refactored
iouring
. @matyhtf @NathanFreeman - Optimized timers so that synchronous processes do not depend on signals. @matyhtf
- Optimized the
Swoole\Coroutine\System::waitSignal()
method to allow listening to multiple signals simultaneously. @matyhtf
😊 Thank you:
- Thank you for your contributions to
Swoole v6.0.0
. Wishing everyone good health, happiness, and success in your work.
⛔️ Warning:
- This version is a
pre-release
and should not be used in production environments, only in testing environments.
✨️ 新特性:
- 新增`非阻塞,可重入的互斥协程锁”,该锁可以在进程间/线程间使用,且不会阻塞进程/线程。 @NathanFreeman
Swoole\Coroutine\Socket::getOption()
支持了TCP_INFO
选项。 @matyhtfSwoole\Client
同步阻塞客户端支持http
代理。 @matyhtf- 新增异步非阻塞的
TCP/UDP/Unixsocket
客户端Swoole\Async\Client
。 @matyhtf - 优化
Swoole\Redis\Server::format
()方法,支持内存零拷贝,支持redis
嵌套结构。 @matyhtf
🐛 Bug修复:
- 修复因为
PHP-8.4
在ZTS模式下的超时
特性引起的Fatal error
问题。 @matyhtf - 修复
PHP-8.4
的exit()
函数hook
。 @remicollet - 修复
Swoole\Thread::getNativeId()
在cygwin
无法工作的问题。 @matyhtf - 修复
Swoole\Coroutine::getaddrinfo()
方法会导致SIGSEGV
的问题。 @matyhtf - 修复
runtime tcp
模块不支持动态开启SSL加密的问题。 @matyhtf - 修复http客户端长时间运行导致超时时间不正确的问题。 @matyhtf
- 修复进程退出之前会导致
Swoole\Table
的互斥锁无法使用的问题。 @matyhtf - 修复使用命名参数导致
Swoole\Server::stop()
执行失败的问题。 @matyhtf - 修复
Swoole\Thread\Map::toArray()
函数未复制key
导致崩溃的问题。 @matyhtf - 修复
Swoole\Thread\Map
无法删除嵌套的数字键的问题。 @matyhtf
⭐️ 内核优化:
- 异步
Server
多线程模式支持重启工作线程。 @matyhtf - 异步
Server
多线程模式支持在Manager
线程中开启定时器。 @matyhtf - 兼容
PHP-8.4
的curl
扩展。 @matyhtf @NathanFreeman - 重构
iouring
。 @matyhtf @NathanFreeman - 优化定时器,使同步进程不依赖于信号。 @matyhtf
- 优化
Swoole\Coroutine\System::waitSignal()
方法,允许同时监听多个信号。 @matyhtf
😊 致谢:
- 感谢你们为
Swoole v6.0.0
做出的贡献,祝愿大家身体健康,万事如意,工作顺利。
⛔️ 警告:
- 目前该版本是预发布版本,禁止在生产环境中使用,只能用于测试环境。