Only create ConnectTimeoutException if really needed (#10595)
Motivation: Creating exceptions is expensive so we should only do so if really needed. Modifications: Only create the ConnectTimeoutException if we really need it. Result: Less overhead
This commit is contained in:
parent
58911c1482
commit
5bb535e78a
@ -564,9 +564,9 @@ abstract class AbstractEpollChannel extends AbstractChannel implements UnixChann
|
|||||||
if (connectTimeoutMillis > 0) {
|
if (connectTimeoutMillis > 0) {
|
||||||
connectTimeoutFuture = eventLoop().schedule(() -> {
|
connectTimeoutFuture = eventLoop().schedule(() -> {
|
||||||
ChannelPromise connectPromise = AbstractEpollChannel.this.connectPromise;
|
ChannelPromise connectPromise = AbstractEpollChannel.this.connectPromise;
|
||||||
ConnectTimeoutException cause =
|
if (connectPromise != null && !connectPromise.isDone()
|
||||||
new ConnectTimeoutException("connection timed out: " + remoteAddress);
|
&& connectPromise.tryFailure(new ConnectTimeoutException(
|
||||||
if (connectPromise != null && connectPromise.tryFailure(cause)) {
|
"connection timed out: " + remoteAddress))) {
|
||||||
close(voidPromise());
|
close(voidPromise());
|
||||||
}
|
}
|
||||||
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
||||||
|
@ -553,9 +553,9 @@ abstract class AbstractKQueueChannel extends AbstractChannel implements UnixChan
|
|||||||
if (connectTimeoutMillis > 0) {
|
if (connectTimeoutMillis > 0) {
|
||||||
connectTimeoutFuture = eventLoop().schedule(() -> {
|
connectTimeoutFuture = eventLoop().schedule(() -> {
|
||||||
ChannelPromise connectPromise = AbstractKQueueChannel.this.connectPromise;
|
ChannelPromise connectPromise = AbstractKQueueChannel.this.connectPromise;
|
||||||
ConnectTimeoutException cause =
|
if (connectPromise != null && !connectPromise.isDone()
|
||||||
new ConnectTimeoutException("connection timed out: " + remoteAddress);
|
&& connectPromise.tryFailure(new ConnectTimeoutException(
|
||||||
if (connectPromise != null && connectPromise.tryFailure(cause)) {
|
"connection timed out: " + remoteAddress))) {
|
||||||
close(voidPromise());
|
close(voidPromise());
|
||||||
}
|
}
|
||||||
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
||||||
|
@ -240,9 +240,9 @@ public abstract class AbstractNioChannel extends AbstractChannel {
|
|||||||
if (connectTimeoutMillis > 0) {
|
if (connectTimeoutMillis > 0) {
|
||||||
connectTimeoutFuture = eventLoop().schedule(() -> {
|
connectTimeoutFuture = eventLoop().schedule(() -> {
|
||||||
ChannelPromise connectPromise = AbstractNioChannel.this.connectPromise;
|
ChannelPromise connectPromise = AbstractNioChannel.this.connectPromise;
|
||||||
ConnectTimeoutException cause =
|
if (connectPromise != null && !connectPromise.isDone()
|
||||||
new ConnectTimeoutException("connection timed out: " + remoteAddress);
|
&& connectPromise.tryFailure(new ConnectTimeoutException(
|
||||||
if (connectPromise != null && connectPromise.tryFailure(cause)) {
|
"connection timed out: " + remoteAddress))) {
|
||||||
close(voidPromise());
|
close(voidPromise());
|
||||||
}
|
}
|
||||||
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
}, connectTimeoutMillis, TimeUnit.MILLISECONDS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user