concurrency issues in MessageBuilder internal data

This commit is contained in:
accelerated
2018-06-10 10:14:00 -04:00
parent 23810654ab
commit a4eefacaa1
5 changed files with 47 additions and 18 deletions

View File

@@ -68,8 +68,8 @@ Message::Message(HandlePtr handle)
Message& Message::load_internal() {
if (user_data_) {
MessageInternal* mi = static_cast<MessageInternal*>(user_data_);
user_data_ = mi->user_data_;
internal_ = mi->internal_;
user_data_ = mi->get_user_data();
internal_ = mi->get_internal();
}
return *this;
}

View File

@@ -45,4 +45,12 @@ std::unique_ptr<MessageInternal> MessageInternal::load(Message& message) {
static_cast<MessageInternal*>(message.get_handle()->_private) : nullptr);
}
void* MessageInternal::get_user_data() const {
return user_data_;
}
InternalPtr MessageInternal::get_internal() const {
return internal_;
}
}