@@ -248,8 +248,6 @@ void DataWriterImpl::create_history(
248248
249249ReturnCode_t DataWriterImpl::enable ()
250250{
251- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
252-
253251 assert (writer_ == nullptr );
254252
255253 auto history_att = DataWriterHistory::to_history_attributes (
@@ -519,8 +517,6 @@ ReturnCode_t DataWriterImpl::loan_sample(
519517 void *& sample,
520518 LoanInitializationKind initialization)
521519{
522- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
523-
524520 // Block lowlevel writer
525521 auto max_blocking_time = steady_clock::now () +
526522 microseconds (rtps::TimeConv::Time_t2MicroSecondsInt64 (qos_.reliability ().max_blocking_time ));
@@ -822,8 +818,6 @@ InstanceHandle_t DataWriterImpl::do_register_instance(
822818 const InstanceHandle_t instance_handle,
823819 WriteParams& wparams)
824820{
825- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
826-
827821 // TODO(MiguelCompany): wparams should be used when propagating the register_instance operation to the DataReader.
828822 // See redmine issue #14494
829823 static_cast <void >(wparams);
@@ -871,8 +865,6 @@ ReturnCode_t DataWriterImpl::unregister_instance(
871865 const InstanceHandle_t& handle,
872866 bool dispose)
873867{
874- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
875-
876868 // Preconditions
877869 InstanceHandle_t ih;
878870 ReturnCode_t returned_value = check_instance_preconditions (instance, handle, ih);
@@ -898,8 +890,6 @@ ReturnCode_t DataWriterImpl::unregister_instance_w_timestamp(
898890 const fastdds::dds::Time_t& timestamp,
899891 bool dispose)
900892{
901- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
902-
903893 // Preconditions
904894 InstanceHandle_t instance_handle;
905895 ReturnCode_t ret = RETCODE_OK;
@@ -1078,7 +1068,8 @@ ReturnCode_t DataWriterImpl::perform_create_new_change(
10781068 return RETCODE_TIMEOUT;
10791069 }
10801070
1081- if (qos_.deadline ().period .to_ns () > 0 && qos_.deadline ().period != dds::c_TimeInfinite && deadline_missed_status_.total_count < std::numeric_limits<uint32_t >::max ())
1071+ if (qos_.deadline ().period .to_ns () > 0 && qos_.deadline ().period != dds::c_TimeInfinite &&
1072+ deadline_missed_status_.total_count < std::numeric_limits<uint32_t >::max ())
10821073 {
10831074 if (!history_->set_next_deadline (
10841075 handle,
@@ -1187,8 +1178,6 @@ InstanceHandle_t DataWriterImpl::get_instance_handle() const
11871178
11881179void DataWriterImpl::publisher_qos_updated ()
11891180{
1190- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1191-
11921181 if (writer_ != nullptr )
11931182 {
11941183 // NOTIFY THE BUILTIN PROTOCOLS THAT THE WRITER HAS CHANGED
@@ -1221,8 +1210,6 @@ ReturnCode_t DataWriterImpl::set_qos(
12211210 }
12221211 }
12231212
1224- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1225-
12261213 if (enabled && !can_qos_be_updated (qos_, qos_to_set))
12271214 {
12281215 return RETCODE_IMMUTABLE_POLICY;
@@ -1235,6 +1222,7 @@ ReturnCode_t DataWriterImpl::set_qos(
12351222
12361223 if (enabled)
12371224 {
1225+ std::unique_lock<RecursiveTimedMutex> lock (writer_->getMutex ());
12381226 // Locks after we checked that writer exists
12391227
12401228 int32_t transport_priority = writer_->get_transport_priority ();
@@ -1268,7 +1256,8 @@ ReturnCode_t DataWriterImpl::set_qos(
12681256 }
12691257
12701258 // Lifespan
1271- if (old_qos.lifespan ().duration != qos_.lifespan ().duration ) {
1259+ if (old_qos.lifespan ().duration != qos_.lifespan ().duration )
1260+ {
12721261 if (qos_.lifespan ().duration != dds::c_TimeInfinite)
12731262 {
12741263 lifespan_duration_us_ =
@@ -1287,7 +1276,6 @@ ReturnCode_t DataWriterImpl::set_qos(
12871276
12881277const DataWriterQos& DataWriterImpl::get_qos () const
12891278{
1290- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
12911279 return qos_;
12921280}
12931281
@@ -1603,7 +1591,7 @@ void DataWriterImpl::configure_deadline_timer_()
16031591 },
16041592 // Park timer with a huge interval (prevents spurious callbacks); we'll arm/cancel explicitly
16051593 std::numeric_limits<double >::max ()
1606- );
1594+ );
16071595 }
16081596
16091597 // Handle "infinite" and "zero" outside the callback
@@ -1614,7 +1602,8 @@ void DataWriterImpl::configure_deadline_timer_()
16141602 return ;
16151603 }
16161604
1617- deadline_duration_us_ = std::chrono::duration<double , std::ratio<1 , 1000000 >>(qos_.deadline ().period .to_ns () * 1e-3 );
1605+ deadline_duration_us_ =
1606+ std::chrono::duration<double , std::ratio<1 , 1000000 >>(qos_.deadline ().period .to_ns () * 1e-3 );
16181607
16191608 if (qos_.deadline ().period .to_ns () == 0 )
16201609 {
@@ -1664,7 +1653,8 @@ bool DataWriterImpl::deadline_missed()
16641653 // If we just reached the max -> log ONCE, stop timer, and bail.
16651654 if (deadline_missed_status_.total_count == std::numeric_limits<uint32_t >::max ())
16661655 {
1667- EPROSIMA_LOG_WARNING (DATA_WRITER, " Maximum number of deadline missed messages reached. Stopping deadline timer." );
1656+ EPROSIMA_LOG_WARNING (DATA_WRITER,
1657+ " Maximum number of deadline missed messages reached. Stopping deadline timer." );
16681658 deadline_timer_->cancel_timer ();
16691659 return false ; // do not reschedule
16701660 }
@@ -1797,8 +1787,6 @@ ReturnCode_t DataWriterImpl::assert_liveliness()
17971787ReturnCode_t DataWriterImpl::get_publication_builtin_topic_data (
17981788 PublicationBuiltinTopicData& publication_data) const
17991789{
1800- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1801-
18021790 if (nullptr == writer_)
18031791 {
18041792 return RETCODE_NOT_ENABLED;
0 commit comments