Skip to content

Commit 5434d0c

Browse files
authored
Change native library default to epoll over io_uring (#3278)
* Change native library default to epoll over io_uring * Move the warning log to isAvailable method
1 parent ba02521 commit 5434d0c

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/main/java/io/lettuce/core/resource/Transports.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.lettuce.core.resource;
22

33
import io.lettuce.core.internal.LettuceAssert;
4+
import io.micrometer.common.util.internal.logging.InternalLogger;
5+
import io.micrometer.common.util.internal.logging.InternalLoggerFactory;
46
import io.netty.channel.Channel;
57
import io.netty.channel.EventLoopGroup;
68
import io.netty.channel.nio.NioEventLoopGroup;
@@ -59,13 +61,18 @@ public static Class<? extends DatagramChannel> datagramChannelClass() {
5961
*/
6062
public static class NativeTransports {
6163

64+
private static final InternalLogger transportsLogger = InternalLoggerFactory.getInstance(Transports.class);
65+
6266
static EventLoopResources RESOURCES = KqueueProvider.isAvailable() ? KqueueProvider.getResources()
6367
: IOUringProvider.isAvailable() ? IOUringProvider.getResources() : EpollProvider.getResources();
6468

6569
/**
6670
* @return {@code true} if a native transport is available.
6771
*/
6872
static boolean isAvailable() {
73+
if (EpollProvider.isAvailable() && IOUringProvider.isAvailable()) {
74+
transportsLogger.warn("Both epoll and io_uring native transports are available, epoll has been prioritized.");
75+
}
6976
return EpollProvider.isAvailable() || KqueueProvider.isAvailable() || IOUringProvider.isAvailable();
7077
}
7178

0 commit comments

Comments
 (0)