11#include <detail/preprocessor.hpp>
17struct _RTL_CRITICAL_SECTION;
59 LIBERAPI
void lock() noexcept;
76 [[nodiscard]] LIBERAPI
bool try_lock() noexcept;
81 _RTL_CRITICAL_SECTION* critical_section() noexcept {
82 return this->_dummy_section.get();
85 struct alignas(8) _critical_section {
86 char _dummy_section_bytes[0x28];
88 _RTL_CRITICAL_SECTION* get() noexcept {
89 return reinterpret_cast<_RTL_CRITICAL_SECTION*
>(
this);
94LIBER_ASSERTS_BEGIN(DLPlainLightMutex);
95LIBER_ASSERT_SIZE(0x30);
145LIBER_ASSERT_SIZE(0x10);
181LIBER_ASSERT_SIZE(0x38);
Definition kernel_runtime.hpp:28
A wrapper around a Windows Critical Section (with a spincount).
Definition kernel_runtime.hpp:156
DLPlainAdaptiveMutex(int spin_count) noexcept
Initialize the Windows Critical Section with an explicit spin count.
Definition kernel_runtime.hpp:169
A wrapper around a Windows Critical Section.
Definition kernel_runtime.hpp:38
LIBERAPI void unlock() noexcept
Unlock the mutex.
LIBERAPI void lock() noexcept
Lock the mutex.
LIBERAPI DLPlainLightMutex(int spin_count) noexcept
Initialize the Windows Critical Section with an explicit spin count.
LIBERAPI bool try_lock() noexcept
Try to lock the mutex.
A wrapper around a Windows kernel mutex.
Definition kernel_runtime.hpp:106
LIBERAPI bool try_lock() noexcept
Try to lock the mutex.
LIBERAPI void lock() noexcept
Lock the mutex.
LIBERAPI void unlock() noexcept
Unlock the mutex.
Base class used for non-copyable, but movable objects.
Definition utility.hpp:27
ELDEN RING allocation interface and from::allocator.