Question

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?

Was it helpful?

Solution

Mac OS X doesn't support epoll, but it does support kqueue which is very similar.

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top