Class EpollEventArray

java.lang.Object
io.netty.channel.epoll.EpollEventArray

@UnstableApi public final class EpollEventArray extends Object
This is an internal datastructure which can be directly passed to epoll_wait to reduce the overhead. typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64; } epoll_data_t; struct epoll_event { uint32_t events; // Epoll events epoll_data_t data; // User data variable }; We use fd if the epoll_data union to store the actual file descriptor of an AbstractEpollChannel and so be able to map it later.
  • Field Details

    • EPOLL_EVENT_SIZE

      private static final int EPOLL_EVENT_SIZE
    • EPOLL_DATA_OFFSET

      private static final int EPOLL_DATA_OFFSET
    • memory

      private ByteBuffer memory
    • memoryAddress

      private long memoryAddress
    • length

      private int length
  • Constructor Details

    • EpollEventArray

      EpollEventArray(int length)
  • Method Details

    • memoryAddress

      long memoryAddress()
      Return the memoryAddress which points to the start of this EpollEventArray.
    • length

      int length()
      Return the length of the EpollEventArray which represent the maximum number of epoll_events that can be stored in it.
    • increase

      void increase()
      Increase the storage of this EpollEventArray.
    • free

      void free()
      Free this EpollEventArray. Any usage after calling this method may segfault the JVM!
    • events

      int events(int index)
      Return the events for the epoll_event on this index.
    • fd

      int fd(int index)
      Return the file descriptor for the epoll_event on this index.
    • getInt

      private int getInt(int index, int offset)
    • calculateBufferCapacity

      private static int calculateBufferCapacity(int capacity)