micropython-lib/uasyncio.synchro/example_lock.py

28 wiersze
530 B
Python

try:
import uasyncio.core as asyncio
from uasyncio.synchro import Lock
except ImportError:
import asyncio
from asyncio import Lock
def task(i, lock):
print(lock)
while 1:
yield from lock.acquire()
print("Acquired lock in task", i)
yield from asyncio.sleep(0.5)
# yield lock.release()
lock.release()
loop = asyncio.get_event_loop()
lock = Lock()
loop.create_task(task(1, lock))
loop.create_task(task(2, lock))
loop.create_task(task(3, lock))
loop.run_forever()