Fixed - threads blocked waiting on CountDownLatch #2304

pull/2348/head
Nikita Koksharov 5 years ago
parent dc5b372c91
commit d9793a669a

@ -35,7 +35,7 @@ import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.util.AttributeKey;
import io.netty.util.concurrent.ScheduledFuture;
import io.netty.util.Timeout;
/**
*
@ -201,19 +201,15 @@ public class RedisConnection implements RedisCommands {
RedissonShutdownException cause = new RedissonShutdownException("Redisson is shutdown");
return RedissonPromise.newFailedFuture(cause);
}
ScheduledFuture<?> scheduledFuture = redisClient.getEventLoopGroup().schedule(new Runnable() {
@Override
public void run() {
RedisTimeoutException ex = new RedisTimeoutException("Command execution timeout for command: "
+ LogHelper.toString(command, params)
+ ", Redis client: " + redisClient);
promise.tryFailure(ex);
}
Timeout scheduledFuture = redisClient.getTimer().newTimeout(t -> {
RedisTimeoutException ex = new RedisTimeoutException("Command execution timeout for command: "
+ LogHelper.toString(command, params) + ", Redis client: " + redisClient);
promise.tryFailure(ex);
}, timeout, TimeUnit.MILLISECONDS);
promise.onComplete((res, e) -> {
scheduledFuture.cancel(false);
scheduledFuture.cancel();
});
ChannelFuture writeFuture = send(new CommandData<T, R>(promise, encoder, command, params));

Loading…
Cancel
Save