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)