- Added context propagation to/from worker threads in ``to_thread.run_sync()``,
``from_thread.run()`` and ``from_thread.run_sync()``
(`363 <https://github.com/agronholm/anyio/issues/363>`_; partially based on a PR by
Sebastián Ramírez)
**NOTE**: Requires Python 3.7 to work properly on asyncio!
- Fixed race condition in ``Lock`` and ``Semaphore`` classes when a task waiting on
``acquire()`` is cancelled while another task is waiting to acquire the same primitive
(`387 <https://github.com/agronholm/anyio/issues/387>`_)
- Fixed async context manager's ``__aexit__()`` method not being called in
``BlockingPortal.wrap_async_context_manager()`` if the host task is cancelled
(`381 <https://github.com/agronholm/anyio/issues/381>`_; PR by Jonathan Slenders)
- Fixed worker threads being marked as being event loop threads in sniffio
- Fixed task parent ID not getting set to the correct value on asyncio
- Enabled the test suite to run without IPv6 support, trio or pytest plugin autoloading