8
8
#include " node_platform.h"
9
9
#include " v8-platform.h"
10
10
#include " trace_event_common.h"
11
+ #include < atomic>
11
12
12
13
// This header file defines implementation details of how the trace macros in
13
14
// trace_event_common.h collect and store trace events. Anything not
@@ -128,9 +129,10 @@ enum CategoryGroupEnabledFlags {
128
129
#define TRACE_EVENT_API_ADD_METADATA_EVENT node::tracing::AddMetadataEvent
129
130
130
131
// Defines atomic operations used internally by the tracing system.
131
- #define TRACE_EVENT_API_ATOMIC_WORD intptr_t
132
- #define TRACE_EVENT_API_ATOMIC_LOAD (var ) (var)
133
- #define TRACE_EVENT_API_ATOMIC_STORE (var, value ) (var) = (value)
132
+ #define TRACE_EVENT_API_ATOMIC_WORD std::atomic<intptr_t >
133
+ #define TRACE_EVENT_API_ATOMIC_WORD_VALUE intptr_t
134
+ #define TRACE_EVENT_API_ATOMIC_LOAD (var ) (var).load()
135
+ #define TRACE_EVENT_API_ATOMIC_STORE (var, value ) (var).store(value)
134
136
135
137
// //////////////////////////////////////////////////////////////////////////////
136
138
@@ -157,12 +159,12 @@ enum CategoryGroupEnabledFlags {
157
159
category_group_enabled = \
158
160
TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED (category_group); \
159
161
TRACE_EVENT_API_ATOMIC_STORE ( \
160
- atomic, reinterpret_cast <TRACE_EVENT_API_ATOMIC_WORD>( \
162
+ atomic, reinterpret_cast <TRACE_EVENT_API_ATOMIC_WORD_VALUE>( \
161
163
category_group_enabled)); \
162
164
}
163
165
164
166
#define INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO (category_group ) \
165
- static TRACE_EVENT_API_ATOMIC_WORD INTERNAL_TRACE_EVENT_UID (atomic) = 0 ; \
167
+ static TRACE_EVENT_API_ATOMIC_WORD INTERNAL_TRACE_EVENT_UID (atomic) { 0 } ; \
166
168
const uint8_t * INTERNAL_TRACE_EVENT_UID (category_group_enabled); \
167
169
INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO_CUSTOM_VARIABLES ( \
168
170
category_group, INTERNAL_TRACE_EVENT_UID(atomic), \
0 commit comments