Skip to content

0.17.1

Latest

Choose a tag to compare

@x42005e1f x42005e1f released this 27 Jun 20:41
· 31 commits to main since this release
a3051c5

Fixed

  • aiologic.Lock (and aiologic.RLock) was unable to detect mixed deadlocks (for example, when a lock has already been acquired by an asynchronous task and there is an attempt to acquire it synchronously), resulting in hangs. It now raises a RuntimeError for simple mixed deadlocks (attempting to acquire a lock as a thread when it has already been acquired in the same thread by any green/async task), which, although only a subset of all possible cases, covers the most common scenarios. Related: #38.
  • aiologic.lowlevel.async_seconds_per_sleep() (and aiologic.lowlevel.async_seconds_per_timeout()) did not handle non-standard asyncio event loops, which could lead to overflows on Pyodide (see pyodide/pyodide#6304; however, note that this does not apply to aiologic.lowlevel.async_sleep_forever()) and non-pure Python event loops. It now handles standard event loops, uvloop, winloop, pyodide.webloop.WebLoop, and others.