twosee

Results 6 issues of twosee

Negative timeout means wait forever (unlimited) in php stream, previously we allow to set `OPT_READ_TIMEOUT` to -1 but we did not allow to do the same in `connect()`, I think...

协程中断 --- + 支持所有协程阻塞事件的中断(取消操作)(`Co::cancel`) + 支持PHP层的协程中断+异常抛出 (`Co::throw`) + 支持PHP层的杀死协程 (`Co::kill`) ### 需要了解的概念 以上三个功能都是基于协程中断特性的, 只有处于`cancelable`(可取消)的操作中的协程才能被`取消/置异常/杀死`, 当你成功中断一个协程时, 上下文环境将会立即切换到对应协程中 尝试`取消/置异常/杀死`一个处于不可取消操作中的协程, 将会返回false, 此时调用`swoole_last_error()`返回值为`SWOOLE_ERROR_CO_NONCANCELABLE_OPERATION` 尝试`取消/置异常/杀死`一个不存在的协程, 将会返回false, 此时调用`swoole_last_error()`返回值为`SWOOLE_ERROR_CO_NOT_EXIST` 尝试`置异常`一个协程成功后, 协程内抛出的异常的错误码`$e->getCode`值为`SWOOLE_ERROR_CO_INTERRUPTED_BY_EXCEPTION`, 并且异常将可以通过`$e->getOriginCid()`, `$e->getOriginFile()`, `$e->getOriginFile()`, `$e->getOriginTrace()` 来获取是哪个协程的哪个位置将当前协程置异常的 ###...

草案

# Swoole 5.0 版本请求意见稿 ### 项目方向 Swoole项目从创建至今已经有超过6年的历史了, 但Swoole协程却是一个全新的事物, 随着4.0版本Swoole的有栈协程问世, Swoole的协程化才真正步入了稳定发展阶段. Swoole从4.0开始一直致力于提升底层代码的稳定性, 不断地做代码精简与优化, 但异步时代的Swoole遗留下来的历史包袱积重难返, 制约了Swoole的进一步发展, 因此我们Swoole开发组决定面对这些历史问题, 做出一个大胆的决定, 从内核中剔除掉一些会导致协程生态混乱的模块, 只保留纯协程的编码模式, 直接提供PHP协程的最佳实践方案, 开发者无需再去纠结于各种复杂繁琐的配置, 甚至在同步, 异步和协程之中迷茫. Swoole后续的生态将完全建立在协程之上, 并且我们会基于5.0版本重新书写文档, 提供Swoole的最佳实践指南, 最大程度减小Swoole开发者的学习成本. **如果你的应用已经完全基于协程实现**(如你正在使用Swoft/EasySwoole3等纯协程框架/组件), 那么**5.0的改动不会对你造成多少影响**. 我将会在下方列出所有涉及删除或改动的内容, **以重要程度优先级排序**,...

Fix the bug caused by inconsistent struct formats returned by Google and Bing. Not all engines will return the "id" field, so defensive handling has been implemented on the front...