Python 3.7 or higher.
Install: pip install asyncio-guard
- Set a value, get exclusive access to it, set another value
guard = Guard(obj=1)
async with guard as obj:
assert obj == 1
await guard.set(2)
async with guard as obj:
assert obj == 2
- Update a value by using update function.
This update function will be used, if no value was set up.
guard = Guard(obj=1, update_func=lambda: return 2)
async with guard as obj:
assert obj == 1
await guard.update_func()
async with guard as obj:
assert obj == 2