问题
I'm learning to use epoll function. But my OS X, Mountain Lion doesn't have a header file, sys/epoll.h.
I'd like to use epoll function on OS X. How Can I use epoll function?
回答1:
Mac OS X doesn't support epoll, but it does support kqueue which is very similar.
回答2:
on Mac OSX use kqueue instead of epoll. Do something like this in your java code.
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);
}
Ensure that you have added io.netty on pom.xml
来源:https://stackoverflow.com/questions/13856413/does-os-x-not-support-epoll-function