Skip to content

Commit eace4c5

Browse files
authored
ActorSystem memlog use std atomic (#644)
1 parent ece919f commit eace4c5

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

ydb/library/actors/memory_log/memlog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ unsigned TMemoryLog::GetSelfCpu() noexcept {
9898
#endif
9999
}
100100

101-
TMemoryLog* TMemoryLog::MemLogBuffer = nullptr;
101+
std::atomic<TMemoryLog*> TMemoryLog::MemLogBuffer = nullptr;
102102
Y_POD_THREAD(TThread::TId)
103103
TMemoryLog::LogThreadId;
104104
char* TMemoryLog::LastMarkIsHere = nullptr;

ydb/library/actors/memory_log/memlog.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class TMemoryLog {
4242
static constexpr size_t LAST_MARK_SIZE = sizeof(DEFAULT_LAST_MARK);
4343

4444
inline static TMemoryLog* GetMemoryLogger() noexcept {
45-
return AtomicGet(MemLogBuffer);
45+
return MemLogBuffer.load(std::memory_order_acquire);
4646
}
4747

4848
void* GetWriteBuffer(size_t amount) noexcept;
@@ -63,11 +63,11 @@ class TMemoryLog {
6363
size_t totalSize = DEFAULT_TOTAL_SIZE,
6464
size_t grainSize = DEFAULT_GRAIN_SIZE)
6565
Y_COLD {
66-
if (AtomicGet(MemLogBuffer) != nullptr) {
66+
if (MemLogBuffer.load(std::memory_order_acquire) != nullptr) {
6767
return;
6868
}
6969

70-
AtomicSet(MemLogBuffer, new TMemoryLog(totalSize, grainSize));
70+
MemLogBuffer.store(new TMemoryLog(totalSize, grainSize), std::memory_order_release);
7171
}
7272

7373
static std::atomic<bool> PrintLastMark;
@@ -163,7 +163,7 @@ class TMemoryLog {
163163

164164
static unsigned GetSelfCpu() noexcept;
165165

166-
static TMemoryLog* MemLogBuffer;
166+
static std::atomic<TMemoryLog*> MemLogBuffer;
167167
static Y_POD_THREAD(TThread::TId) LogThreadId;
168168
static char* LastMarkIsHere;
169169
};

0 commit comments

Comments
 (0)