… | |
… | |
3048 | |
3048 | |
3049 | ecb_cold |
3049 | ecb_cold |
3050 | unsigned int |
3050 | unsigned int |
3051 | ev_embeddable_backends (void) EV_NOEXCEPT |
3051 | ev_embeddable_backends (void) EV_NOEXCEPT |
3052 | { |
3052 | { |
3053 | int flags = EVBACKEND_EPOLL | EVBACKEND_KQUEUE | EVBACKEND_PORT; |
3053 | int flags = EVBACKEND_EPOLL | EVBACKEND_KQUEUE | EVBACKEND_PORT | EVBACKEND_IOURING; |
3054 | |
3054 | |
3055 | /* epoll embeddability broken on all linux versions up to at least 2.6.23 */ |
3055 | /* epoll embeddability broken on all linux versions up to at least 2.6.23 */ |
3056 | if (ev_linux_version () < 0x020620) /* disable it on linux < 2.6.32 */ |
3056 | if (ev_linux_version () < 0x020620) /* disable it on linux < 2.6.32 */ |
3057 | flags &= ~EVBACKEND_EPOLL; |
3057 | flags &= ~EVBACKEND_EPOLL; |
3058 | |
3058 | |
3059 | /* EVBACKEND_LINUXAIO is theoretically embeddable, but suffers from a performance overhead */ |
3059 | /* EVBACKEND_LINUXAIO is theoretically embeddable, but suffers from a performance overhead */ |
3060 | |
|
|
3061 | /* EVBACKEND_IOURING is practically embeddable, but the current implementation is not |
|
|
3062 | * because our backend_fd is the epoll fd we need as fallback. |
|
|
3063 | * if the kernel ever is fixed, this might change... |
|
|
3064 | */ |
|
|
3065 | |
3060 | |
3066 | return flags; |
3061 | return flags; |
3067 | } |
3062 | } |
3068 | |
3063 | |
3069 | unsigned int |
3064 | unsigned int |