1.4版的更改#

1.4.0(2019年1月4日)#

  • 在“3Str”模式下使用Cython 0.29进行构建。

  • 在Windows上使用pypy 6.0进行测试。

  • 添加对应用程序范围回调的支持 Greenlet 对象已启动。见 pull request #1289 由Yury Selivanov提供。

  • 修复使用单个就绪对象的问题 next(gevent.iwait(objs)) . 以前这样的建筑会因为 iter 未被调用。见 pull request #1288 由乔希·斯奈德提供。但不建议这样做,因为未等待的对象将具有悬空链接(但请参见下一项)。

  • 制作 gevent.iwait 返回一个迭代器,它现在也可以用作上下文管理器。如果只使用迭代器的一部分,请在 with 阻止以避免资源泄漏。见 pull request #1290 由乔希·斯奈德提供。

  • 修复信号量,以便在链接就绪时立即通知链接,并且 rawlink() 被调用。这表现得像 EventAsyncEvent . 注意,没有指定信号量链接的调用顺序。见 issue #1287 丹·米伦报道。

  • 提高解释程序关闭期间处理异常的安全性。见 issue #1295 由Bobdenar1212报告。

  • 删除不推荐使用的指定功能 GEVENT_RESOLVER 以及其他可导入的设置 path/to/a/package.module.item . 这有竞争条件,不适用于复杂的解析器实现。将所需的包或模块放在 sys.path 第一。

  • 减少使用阻塞监视器功能可能导致明显随机 SystemError: Objects/tupleobject.c: bad argument to internal function . 报告时间: issue #1302 作者:乌尔里希·佩特里。

  • 重构gevent测试运行程序和测试套件,使它们更可重用。尤其是,测试现在使用 python -m gevent.tests . 见 issue #1293 .

  • 做一只修补过的猴子 socket.getaddrinfo 对于python 3上的socket类型和地址族,返回socket模块枚举,而不是普通整数。见 issue #1310 由他们报道。

    备注

    这需要python 3.4.3或更高版本,因为该版本中有未记录的更改。

  • 使gevent的pywsgi服务器设置非标准环境值 wsgi.input_terminated 为真。见 issue #1308 .

  • 制作 gevent.util.assert_switches 断言失败时生成更多信息性消息。

  • python 2:如果 gevent.socket 异步关闭(在不同的greenlet或集线器回调中), AttributeError 如果套接字已在使用,则可能会导致。现在应该提出正确的socket.error。

  • 固定 gevent.threadpool.ThreadPool.join() 提高 UserWarning 使用libuv后端时。报告时间: issue #1321 通过零网。

  • 固定 FileObjectPosix.seek 饲养 OSError 应该是什么时候 IOError 在python 2上。里卡多·科克纳报道,公关部报道。见 issue #1323 .

  • 将libuv从1.23.2升级到1.24.0。