microRTPS: timesync: apply offset atomically

This commit is contained in:
TSC21
2020-03-10 12:15:18 +00:00
committed by Nuno Marques
parent 170835f3f8
commit 441e6290eb
2 changed files with 8 additions and 1 deletions
+5
View File
@@ -122,6 +122,8 @@ void RtpsTopics::publish(uint8_t topic_ID, char data_buffer[], size_t len)
@[ if topic == 'Timesync']@
_timesync->processTimesyncMsg(&st);
@[ end if]@
// apply timestamp offset
_timesync->applyOffset(st.timestamp());
_@(topic)_pub.publish(&st);
}
break;
@@ -156,6 +158,9 @@ bool RtpsTopics::getMsg(const uint8_t topic_ID, eprosima::fastcdr::Cdr &scdr)
@(topic) msg = _@(topic)_sub.getMsg();
@[ end if]@
@[ end if]@
// apply timestamp offset
_timesync->applyOffset(msg.timestamp());
msg.serialize(scdr);
ret = true;
_@(topic)_sub.unlockMsg();