1.9.1
最后更新于:2022-04-02 06:43:56
# 1.9.1
[TOC]
## 主要更新内容
* 修复使用`addProcess`添加用户进程后无法正常shutdown的问题
* 异步读写文件函数`Async::writeFile`增加`FILE_APPEND`选项支持
* 异步读写文件函数在进行read、write时对文件加锁
* 修复`Async::write`函数未设置回调函数发生崩溃的问题
* 重构`Async::write`函数追加模式的实现,使用`O_APPEND`
* 重构`reopen log file`特性,收到`SIGRTMIN`信号后重新打开日志文件并重定向标准输出
* 修复`Table`迭代器遗漏数据的问题
* 回调函数`onPacket`客户端信息参数增加服务器来源端口`server_port`
* 回调函数`onReceive`和`connection_info`方法即将移除对UDP的支持,UDP端口使用这2个特性时会抛出`E_DEPRECATED`警告信息
* 服务器连接迭代器`Connection\Iterator`增加ArrayAccess接口
* **修复`Server`在进程管道缓存区塞满后连续发送大数据导致死锁的问题(重要问题)**
* 修复PHP7下启用`opcache`导致崩溃的问题
* 修复`taskWaitMulti`在超时后无法返回执行成功任务结果的问题
* 定时器使用`MONOTONIC`单调时间,解决系统时间修改导致定时器错乱的问题
## 连接ArrayAccess用法
~~~
$serv->on('connect', function ($serv, $fd, $reactor_id){
echo "IP Address: ".$serv->connections[$fd]['remote_ip']."\n";
if (isset($serv->connections[6])) {
echo "connection 6 is exists.\n";
}
});
~~~
';