@@ -159,7 +159,6 @@ class TestPublisher
159159 {
160160 hello_.index (msg.index ());
161161 hello_.message (msg.message ());
162-
163162 return writer_->write (&hello_, params);
164163 }
165164
@@ -373,9 +372,11 @@ class TestSubscriber
373372 return listener_.n_key_disposed ;
374373 }
375374
376- eprosima::fastdds::rtps::GUID_t original_writer_guid () const
375+ eprosima::fastdds::rtps::GUID_t original_writer_guid ()
377376 {
378- return listener_.original_writer_guid ;
377+ std::lock_guard<std::mutex> lock (listener_.original_writer_guid_mtx );
378+ eprosima::fastdds::rtps::GUID_t guid = listener_.original_writer_guid ;
379+ return guid;
379380 }
380381
381382private:
@@ -446,7 +447,10 @@ class TestSubscriber
446447 n_key_disposed++;
447448 }
448449
449- original_writer_guid = info.original_writer_info .original_writer_guid ();
450+ {
451+ std::lock_guard<std::mutex> lock (original_writer_guid_mtx);
452+ original_writer_guid = info.original_writer_info .original_writer_guid ();
453+ }
450454 }
451455 }
452456
@@ -471,6 +475,9 @@ class TestSubscriber
471475 // ! Placeholder where original writer GUID is stored
472476 eprosima::fastdds::rtps::GUID_t original_writer_guid;
473477
478+ // ! Protects original_writer_guid
479+ std::mutex original_writer_guid_mtx;
480+
474481 std::atomic<std::uint32_t > n_key_disposed;
475482
476483 // ! Reference to the sample sent by the publisher
0 commit comments