You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.