mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 03:16:55 +01: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.
|
||
|---|---|---|
| .. | ||
| btr | ||
| buf | ||
| data | ||
| dict | ||
| eval | ||
| fil | ||
| fsp | ||
| fts | ||
| fut | ||
| gis | ||
| ha | ||
| handler | ||
| ibuf | ||
| include | ||
| lock | ||
| log | ||
| mem | ||
| mtr | ||
| mysql-test/storage_engine | ||
| os | ||
| page | ||
| pars | ||
| que | ||
| read | ||
| rem | ||
| row | ||
| srv | ||
| sync | ||
| trx | ||
| unittest | ||
| ut | ||
| .clang-format-old | ||
| CMakeLists.txt | ||
| COPYING.Google | ||
| COPYING.Percona | ||