@@ -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;
@@ -1187,8 +1177,6 @@ InstanceHandle_t DataWriterImpl::get_instance_handle() const
11871177
11881178void DataWriterImpl::publisher_qos_updated ()
11891179{
1190- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1191-
11921180 if (writer_ != nullptr )
11931181 {
11941182 // NOTIFY THE BUILTIN PROTOCOLS THAT THE WRITER HAS CHANGED
@@ -1221,8 +1209,6 @@ ReturnCode_t DataWriterImpl::set_qos(
12211209 }
12221210 }
12231211
1224- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1225-
12261212 if (enabled && !can_qos_be_updated (qos_, qos_to_set))
12271213 {
12281214 return RETCODE_IMMUTABLE_POLICY;
@@ -1235,6 +1221,7 @@ ReturnCode_t DataWriterImpl::set_qos(
12351221
12361222 if (enabled)
12371223 {
1224+ std::unique_lock<RecursiveTimedMutex> lock (writer_->getMutex ());
12381225 // Locks after we checked that writer exists
12391226
12401227 int32_t transport_priority = writer_->get_transport_priority ();
@@ -1287,7 +1274,6 @@ ReturnCode_t DataWriterImpl::set_qos(
12871274
12881275const DataWriterQos& DataWriterImpl::get_qos () const
12891276{
1290- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
12911277 return qos_;
12921278}
12931279
@@ -1797,8 +1783,6 @@ ReturnCode_t DataWriterImpl::assert_liveliness()
17971783ReturnCode_t DataWriterImpl::get_publication_builtin_topic_data (
17981784 PublicationBuiltinTopicData& publication_data) const
17991785{
1800- std::unique_lock<RecursiveTimedMutex> il (impl_mtx_);
1801-
18021786 if (nullptr == writer_)
18031787 {
18041788 return RETCODE_NOT_ENABLED;
0 commit comments