4.2.10

新增

  • 重构Coroutine\Http\Client,开发人员不再需要关心连接是否断开,除非网络异常(自动重新连接)
  • 统一协程套接字超时(参见:https://wiki.swoole.com/wiki/page/p-socket_timeout.html)
  • 协程切换器添加了一些操作,因为PDO在IO请求时更改了全局error_handler
  • 支持使用内部C函数创建协程
  • 允许跨协程关闭Socket
  • 改进服务器端SSL证书验证
  • 增强协程迭代器和堆栈跟踪
  • swoole_event_wait始终位于shutdown_function列表的第一位(#2144)
  • 不允许unset设置内置对象的属性,否则可能会引发coredump
  • 对于大多数内置类,不允许克隆和序列化 (除了exception等类)
  • 增强的协程redis,现在它可以使用setOption在连接后调整配置和自动重新连接, 就如同phpredis一样

修复

  • 修复了taskwait的内存泄漏
  • 修复了在 协程socket 上等待可写事件时出现epoll_error导致的coredump
  • 更友好的警告信息
  • 修复了task进程中的默认启用协程化的BUG
  • 修复了遇到异常时defer未执行的BUG
  • 修复了写入产量时没有复制全局缓冲区的BUG
  • 修复了Http代理(#2195)(#2205)
  • 修复了Channel::push超时的BUG(#2226)
  • 修复了HttpClient的websocket_mask(#2206)
  • 修复了MacOS下的atomic::wait的BUG (#2198)
  • 修复了MySQL客户端recv超大数据超过单个packet的最大长度时产生的BUG (#2208) (57fc849) (76179fa)
  • 修复了MacOS不支持swoole_get_local_mac(#2199)
  • 修复了遇到错误Headerphp_http_parser无法解析的BUG(5e91557)
  • 默认的sock属性值为-1(0为STDIN)

废弃

  • 删除Co\Server的短名,此名称保留用于未来的协程Server
  • 所有异步类都标记为已弃用
  • 删除定时器Timer的最长一天的时间限制
  • 不允许在协程中fork进程