Ok so to end this thread, @
popravich told me that the problem is on the server side, since cancelling reader.read() doesn't actually stop the server from waiting for the request.
For the BLPOP timeout case, we should probably let the redis server handle the timeout (as the BPOP command let us do so).
To handle the CancelledSignal, @
popravich
is going to rework the RedisPool and RedisConnection so that RedisConnection uses a pool to make sure that each command will be executed in a connection ready pool and that we can safely close a connection in case of CancelledError when waiting for the server answer.
Thank you all for your help on this.
Best regards,
Rémy