Skip to content

4.4.0

Compare
Choose a tag to compare
@github-actions github-actions released this 26 May 22:02
· 76 commits to master since this release
  • Added the BlockingPortalProvider class to aid with constructing synchronous counterparts to asynchronous interfaces that would otherwise require multiple blocking portals
  • Added __slots__ to AsyncResource so that child classes can use __slots__ (#733; PR by Justin Su)
  • Added the TaskInfo.has_pending_cancellation() method
  • Fixed erroneous RuntimeError: called 'started' twice on the same task status when cancelling a task in a TaskGroup created with the start() method before the first checkpoint is reached after calling task_status.started() (#706; PR by Dominik Schwabe)
  • Fixed two bugs with TaskGroup.start() on asyncio:
    • Fixed erroneous RuntimeError: called 'started' twice on the same task status when cancelling a task in a TaskGroup created with the start() method before the first checkpoint is reached after calling task_status.started() (#706; PR by Dominik Schwabe)
    • Fixed the entire task group being cancelled if a TaskGroup.start() call gets cancelled (#685, #710)
  • Fixed a race condition that caused crashes when multiple event loops of the same backend were running in separate threads and simultaneously attempted to use AnyIO for their first time (#425; PR by David Jiricek and Ganden Schaffner)
  • Fixed cancellation delivery on asyncio incrementing the wrong cancel scope's cancellation counter when cascading a cancel operation to a child scope, thus failing to uncancel the host task (#716)
  • Fixed erroneous TypedAttributeLookupError if a typed attribute getter raises KeyError
  • Fixed the asyncio backend not respecting the PYTHONASYNCIODEBUG environment variable when setting the debug flag in anyio.run()
  • Fixed SocketStream.receive() not detecting EOF on asyncio if there is also data in the read buffer (#701)
  • Fixed MemoryObjectStream dropping an item if the item is delivered to a recipient that is waiting to receive an item but has a cancellation pending (#728)
  • Emit a ResourceWarning for MemoryObjectReceiveStream and MemoryObjectSendStream that were garbage collected without being closed (PR by Andrey Kazantcev)
  • Fixed MemoryObjectSendStream.send() not raising BrokenResourceError when the last corresponding MemoryObjectReceiveStream is closed while waiting to send a falsey item (#731; PR by Ganden Schaffner)