Skip to content

Commit

Permalink
Polishing redis#2790
Browse files Browse the repository at this point in the history
Reinstate resources ordering to provide higher performance io_uring when epoll and io_uring transports are available. Use epoll domain socket channel when io_uring and epoll are available.

Original pull request: redis#2791
  • Loading branch information
mp911de committed Mar 18, 2024
1 parent 1fe5a15 commit 4e7e2bf
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/main/java/io/lettuce/core/resource/Transports.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,14 @@ public static Class<? extends DatagramChannel> datagramChannelClass() {

return NioDatagramChannel.class;
}

/**
* Native transport support.
*/
public static class NativeTransports {

static EventLoopResources RESOURCES = KqueueProvider.isAvailable() ? KqueueProvider.getResources()
: EpollProvider.isAvailable() ? EpollProvider.getResources() : IOUringProvider.getResources();
: IOUringProvider.isAvailable() ? IOUringProvider.getResources() : EpollProvider.getResources();

/**
* @return {@code true} if a native transport is available.
Expand Down Expand Up @@ -109,7 +110,9 @@ static Class<? extends DatagramChannel> datagramChannelClass() {
*/
public static Class<? extends Channel> domainSocketChannelClass() {
assertDomainSocketAvailable();
return RESOURCES.domainSocketChannelClass();
return EpollProvider.isAvailable() && IOUringProvider.isAvailable()
? EpollProvider.getResources().domainSocketChannelClass()
: RESOURCES.domainSocketChannelClass();
}

/**
Expand Down

0 comments on commit 4e7e2bf

Please sign in to comment.