21 lines
466 B
Python
21 lines
466 B
Python
import uasyncio as asyncio
|
|
|
|
|
|
class Queue:
|
|
def __init__(self):
|
|
self.items = []
|
|
self.waiters = []
|
|
|
|
async def put(self, item):
|
|
self.items.append(item)
|
|
if self.waiters:
|
|
waiter = self.waiters.pop(0)
|
|
waiter.set()
|
|
|
|
async def get(self):
|
|
while not self.items:
|
|
event = asyncio.Event()
|
|
self.waiters.append(event)
|
|
await event.wait()
|
|
|
|
return self.items.pop(0) |