![]() |
MySQL 8.0.43
Source Code Documentation
|
Blocks for doing IO, used in the transparent compression and encryption code. More...
#include <os0file.h>
Public Member Functions | |
| Block () noexcept | |
| Default constructor. More... | |
Static Public Member Functions | |
| static void | free (file::Block *obj) noexcept |
| Free the given memory block. More... | |
Public Attributes | |
| byte * | m_ptr |
| Pointer to the memory block. More... | |
| size_t | m_size |
| Size of the data in memory block. More... | |
| byte | pad [ut::INNODB_CACHE_LINE_SIZE] |
| This padding is needed to avoid false sharing. More... | |
| std::atomic< bool > | m_in_use |
Blocks for doing IO, used in the transparent compression and encryption code.
|
inlinenoexcept |
Default constructor.
|
inlinestaticnoexcept |
Free the given memory block.
| [in] | obj | the memory block to be freed. |
| std::atomic<bool> file::Block::m_in_use |
| byte* file::Block::m_ptr |
Pointer to the memory block.
| size_t file::Block::m_size |
Size of the data in memory block.
This may be not UNIV_PAGE_SIZE if the data was compressed before encryption.
| byte file::Block::pad[ut::INNODB_CACHE_LINE_SIZE] |
This padding is needed to avoid false sharing.
TBD: of what exactly? We can't use alignas because std::vector<Block> uses std::allocator which in C++14 doesn't have to handle overaligned types. (see ยง 20.7.9.1.5 of N4140 draft)