I tried to use reader.feed_data() for that but the next call to yield from 
reader.read() return the data feeded.

Le jeudi 9 avril 2015 15:33:29 UTC+2, Rémy Hubscher a écrit :
>
> Ok so continuing to investigate, my question is summarize by the following:
>
> #!/usr/bin/env python
> import asyncio
> import hiredis
> from aioredis.util import encode_command
> from aioredis.errors import ProtocolError, ReplyError
>
>
> @asyncio.coroutine
> def run_me():
>     reader, writer = yield from asyncio.open_connection("localhost", 6379)
>     writer.write(encode_command("BLPOP", "channel", 0))
>     try:
>         task = asyncio.Task(reader.read(65536))
>         data = yield from asyncio.wait_for(task, 1)
>     except asyncio.TimeoutError:
>         task.cancel()
>         data = yield from reader.read(65536)
>     finally:
>         parser = hiredis.Reader(protocolError=ProtocolError,
>                                 replyError=ReplyError)
>         parser.feed(data)
>         return parser.gets()
>
> data = asyncio.get_event_loop().run_until_complete(run_me())
> print(data)
>
>
> *How can I stop the reader in order to read it again later?*
>

Reply via email to