diff --git a/CMakeLists.txt b/CMakeLists.txt index d17d32e5c..573bc5fbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -968,6 +968,11 @@ if (LWS_WITH_LIBEV) "#include int main(int argc, char **argv) { return EVBACKEND_LINUXAIO; } " LWS_HAVE_EVBACKEND_LINUXAIO) + CHECK_C_SOURCE_COMPILES( + "#include + int main(int argc, char **argv) { return EVBACKEND_IOURING; } + " LWS_HAVE_EVBACKEND_IOURING) + endif() diff --git a/cmake/lws_config.h.in b/cmake/lws_config.h.in index 8c67a5b98..d95ab4a9e 100644 --- a/cmake/lws_config.h.in +++ b/cmake/lws_config.h.in @@ -109,6 +109,7 @@ #cmakedefine LWS_WITH_DIR #cmakedefine LWS_WITH_ESP32 #cmakedefine LWS_HAVE_EVBACKEND_LINUXAIO +#cmakedefine LWS_HAVE_EVBACKEND_IOURING #cmakedefine LWS_WITH_EXTERNAL_POLL #cmakedefine LWS_WITH_FILE_OPS #cmakedefine LWS_WITH_FSMOUNT diff --git a/lib/event-libs/libev/libev.c b/lib/event-libs/libev/libev.c index b22746a5b..9770cf1c2 100644 --- a/lib/event-libs/libev/libev.c +++ b/lib/event-libs/libev/libev.c @@ -188,7 +188,12 @@ elops_init_pt_ev(struct lws_context *context, void *_loop, int tsi) backend_name = "Linux AIO"; break; #endif - case EVBACKEND_KQUEUE: +#if defined(LWS_HAVE_EVBACKEND_IOURING) + case EVBACKEND_IOURING: + backend_name = "Linux io_uring"; + break; +#endif + case EVBACKEND_KQUEUE: backend_name = "kqueue"; break; case EVBACKEND_DEVPOLL: