async def METHOD_NAME(self, incoming: AsyncIterator[Item]):
    try:
        async for item in incoming:
            await self._buffer.put(item)
            async with self._lock:
                self._new_items.notify_all()
        self._incoming_finished = True
        async with self._lock:
            self._eof.notify_all()
            self._new_items.notify_all()
    except asyncio.CancelledError:
        pass