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 @@ -104,9 +104,7 @@ class Agent {
104
104
// Writes to all writers registered through AddClient().
105
105
void AppendTraceEvent (TraceObject* trace_event);
106
106
107
- void AddMetadataEvent (std::unique_ptr<TraceObject> event) {
108
- metadata_events_.push_back (std::move (event));
109
- }
107
+ void AddMetadataEvent (std::unique_ptr<TraceObject> event);
110
108
// Flushes all writers registered through AddClient().
111
109
void Flush (bool blocking);
112
110
@@ -145,6 +143,8 @@ class Agent {
145
143
ConditionVariable initialize_writer_condvar_;
146
144
uv_async_t initialize_writer_async_;
147
145
std::set<AsyncTraceWriter*> to_be_initialized_;
146
+
147
+ Mutex metadata_events_mutex_;
148
148
std::list<std::unique_ptr<TraceObject>> metadata_events_;
149
149
};
150
150
You can’t perform that action at this time.
0 commit comments