mirror of
https://github.com/MariaDB/server.git
synced 2025-10-24 08:30:51 +02:00
This commit refactors InnoDB to remove its dependency on tpool internals
logic and significantly reduce platform-specific #ifdefs
(HAVE_URING, _WIN32,__linux__)
Key changes:
- Encapsulated AIO support checks into tpool::is_aio_supported().
- Centralized Linux AIO implementation choice and fallback within
tpool::create_linux_aio(), removing complex #ifdef mazes from
os0file.cc.
- Linux-specific AIO source files are now:
- aio_libaio.cc: Exports create_libaio(). Previously, this logic
was in confusingly named aio_linux.cc (confusingly since uring
introduction)
- aio_liburing.cc: Exports create_liburing(), and not
create_linux_io()
- aio_linux.cc: Exports create_linux_aio(), handles Linux AIO
implementation selection and fallbacks.
- Simplified/modernized CMake build using target_sources() and
target_compile_definitions(), all available since CMake 2.8.12
With this change, there is no need to include ${CMAKE_SOURCE_DIR}/tpool
or add TPOOL_DEFINES flags anymore, target_link_libraries(lib tpool)
does all that.
- LINUX_NATIVE_AIO preprocessor constant is renamed to HAVE_LIBAIO,
analog to existing HAVE_URING.
Ever since we got a second Linux native aio with uring implementation,
this name because very confusing.
|
||
|---|---|---|
| .. | ||
| examples | ||
| client_settings.h | ||
| CMakeLists.txt | ||
| emb_qcache.cc | ||
| emb_qcache.h | ||
| embedded_priv.h | ||
| lib_sql.cc | ||
| libmysql.c | ||
| libmysqld.c | ||
| libmysqld.def | ||
| libmysqld.rc | ||
| resource.h | ||