epoll関数の使い方を学んでいます。しかし、私のOSXであるMountainLionには、ヘッダーファイルsys/epoll.hがありません。
OS Xでepoll関数を使用したいのですが、epoll関数を使用するにはどうすればよいですか?
Mac OS Xはepollをサポートしていませんが、非常によく似たkqueueをサポートしています。
Mac OSXでは、epollの代わりにkqueueを使用します。Javaコードでこのようなことをしてください。
final boolean isMac =
System.getProperty("os.name").toLowerCase(Locale.US).contains("mac");
// Configure the server.
// See https://netty.io/wiki/native-transports.html
EventLoopGroup bossGroup;
EventLoopGroup workerGroup;
if (isMac) {
bossGroup = new io.netty.channel.kqueue.KQueueEventLoopGroup();
workerGroup = new io.netty.channel.kqueue.KQueueEventLoopGroup(5);
} else {
bossGroup = new io.netty.channel.epoll.EpollEventLoopGroup();
workerGroup = new io.netty.channel.epoll.EpollEventLoopGroup(5);
}
pom.xmlにio.nettyが追加されていることを確認してください