MySQL 8.0.40
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)