Skip to content

Epoll question: Why level-triggered? #9349

@njhill

Description

@njhill

I was wondering what the reason is for supporting/exposing level-triggered mode in the epoll transport? As far as I understand, ET versus LT is somewhat of an implementation choice/detail that's beneath the existing netty abstractions, evidenced by the fact that epoll is interchangeable with the java NIO transport.

I found some references to certain features not supported in ET mode, such as auto-read (I guess outdated) and maxMessagePerRead, but can't think why it shouldn't be possible to make such features work. I also can't think of cases where ET wouldn't be preferable performance-wise.

Any explanation/insight would be appreciated!

If LT really isn't needed (I know that's a big if, there's likely something I've overlooked), maybe we could consider simplifying the implementation to be ET only?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions