Does OS X not support epoll function?

和自甴很熟 提交于 2019-12-06 22:05:35

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!