Data LockReceiveData() {
   const ScopeLock lock(mutex);
   Data new_data = data;
   data.ClearUpdate();
   return new_data;
 }