File tree Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Expand file tree Collapse file tree 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) {
207207 id_writer.second ->AppendTraceEvent (trace_event);
208208}
209209
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+
210215void 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+ }
213221
214222 for (const auto & id_writer : writers_)
215223 id_writer.second ->Flush (blocking);
Original file line number Diff line number Diff line change @@ -104,9 +104,7 @@ class Agent {
104104 // Writes to all writers registered through AddClient().
105105 void AppendTraceEvent (TraceObject* trace_event);
106106
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);
110108 // Flushes all writers registered through AddClient().
111109 void Flush (bool blocking);
112110
@@ -145,6 +143,8 @@ class Agent {
145143 ConditionVariable initialize_writer_condvar_;
146144 uv_async_t initialize_writer_async_;
147145 std::set<AsyncTraceWriter*> to_be_initialized_;
146+
147+ Mutex metadata_events_mutex_;
148148 std::list<std::unique_ptr<TraceObject>> metadata_events_;
149149};
150150
You can’t perform that action at this time.
0 commit comments