diff --git a/platforms/common/uORB/uORBDeviceNode.cpp b/platforms/common/uORB/uORBDeviceNode.cpp index 112170de6b..98debff0a4 100644 --- a/platforms/common/uORB/uORBDeviceNode.cpp +++ b/platforms/common/uORB/uORBDeviceNode.cpp @@ -219,14 +219,16 @@ uORB::DeviceNode::write(cdev::file_t *filp, const char *buffer, size_t buflen) memcpy(_data + (_meta->o_size * (generation % _queue_size)), buffer, _meta->o_size); + /* Mark at least one data has been published */ + _data_valid = true; + + mark_as_advertised(); + // callbacks for (auto item : _callbacks) { item->call(); } - /* Mark at least one data has been published */ - _data_valid = true; - ATOMIC_LEAVE; /* notify any poll waiters */