OS X не поддерживает функцию epoll?

Я учусь использовать функцию epoll. Но в моей OS X, Mountain Lion нет заголовочного файла sys/epoll.h.

Я хочу использовать функцию epoll в OS X. Как я могу использовать функцию epoll?


person inherithandle    schedule 13.12.2012    source источник


Ответы (2)


Mac OS X не поддерживает epoll, но поддерживает kqueue очень похоже.

person cmeerw    schedule 13.12.2012
comment
обновленная ссылка developer.apple.com/ библиотека/архив/документация/система/ - person nikoo28; 08.04.2020

в Mac OSX используйте kqueue вместо epoll. Сделайте что-то подобное в своем 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);
    }

Убедитесь, что вы добавили io.netty в pom.xml.

person kham Ham    schedule 01.11.2018