File tree 2 files changed +13
-5
lines changed
2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -207,9 +207,17 @@ void Agent::AppendTraceEvent(TraceObject* trace_event) {
207
207
id_writer.second ->AppendTraceEvent (trace_event);
208
208
}
209
209
210
+ void Agent::AddMetadataEvent (std::unique_ptr<TraceObject> event) {
211
+ Mutex::ScopedLock lock (metadata_events_mutex_);
212
+ metadata_events_.push_back (std::move (event));
213
+ }
214
+
210
215
void Agent::Flush (bool blocking) {
211
- for (const auto & event : metadata_events_)
212
- AppendTraceEvent (event.get ());
216
+ {
217
+ Mutex::ScopedLock lock (metadata_events_mutex_);
218
+ for (const auto & event : metadata_events_)
219
+ AppendTraceEvent (event.get ());
220
+ }
213
221
214
222
for (const auto & id_writer : writers_)
215
223
id_writer.second ->Flush (blocking);
Original file line number Diff line number Diff line change @@ -102,9 +102,7 @@ class Agent {
102
102
// Writes to all writers registered through AddClient().
103
103
void AppendTraceEvent (TraceObject* trace_event);
104
104
105
- void AddMetadataEvent (std::unique_ptr<TraceObject> event) {
106
- metadata_events_.push_back (std::move (event));
107
- }
105
+ void AddMetadataEvent (std::unique_ptr<TraceObject> event);
108
106
// Flushes all writers registered through AddClient().
109
107
void Flush (bool blocking);
110
108
@@ -143,6 +141,8 @@ class Agent {
143
141
ConditionVariable initialize_writer_condvar_;
144
142
uv_async_t initialize_writer_async_;
145
143
std::set<AsyncTraceWriter*> to_be_initialized_;
144
+
145
+ Mutex metadata_events_mutex_;
146
146
std::list<std::unique_ptr<TraceObject>> metadata_events_;
147
147
};
148
148
You can’t perform that action at this time.
0 commit comments