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 @@ -102,9 +102,7 @@ class Agent {
102102 // Writes to all writers registered through AddClient().
103103 void AppendTraceEvent (TraceObject* trace_event);
104104
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);
108106 // Flushes all writers registered through AddClient().
109107 void Flush (bool blocking);
110108
@@ -143,6 +141,8 @@ class Agent {
143141 ConditionVariable initialize_writer_condvar_;
144142 uv_async_t initialize_writer_async_;
145143 std::set<AsyncTraceWriter*> to_be_initialized_;
144+
145+ Mutex metadata_events_mutex_;
146146 std::list<std::unique_ptr<TraceObject>> metadata_events_;
147147};
148148
You can’t perform that action at this time.
0 commit comments