On 8 April 2015 at 11:14, Rémy Hubscher <[email protected]> wrote:

> Hello,
>
> I am using aioredis on a BLPOP which is a blocking call on a redis
> connection.
>
> redis.blpop is a Future created here:
> https://github.com/aio-libs/aioredis/blob/master/aioredis/connection.py#L154-L157
>
> When using asyncio.wait_for(redis.blpop("channel"), timeout=5) if the
> timeout is raised before the blpop happens a asyncio.CancelledError is
> raised and the Future is marked as cancelled.
>
> Later in the code I am asking for another redis.blpop("channel") and the
> next message is not catched because the cancelled task consume it
> nevertheless.
>

This sounds like this bug: http://bugs.python.org/issue23812


>
> I have created a peace of code to reproduce the problem:
> https://github.com/aio-libs/aioredis/issues/59#issue-66158818
>
> Do you have any idea of how I can handle this CancelledError in aioredis
> in order to really cancel the Future?
>
> Thank you for your help.
>
> Kind regards,
>
> Rémy
>



-- 
Gustavo J. A. M. Carneiro
Gambit Research
"The universe is always one step beyond logic." -- Frank Herbert

Reply via email to