}
void serialize(std::stringstream& stream) const override;
std::string to_string() const override;
- bool is_visible() const override { return true; }
};
void ObjectAccessObserver::serialize(std::stringstream& stream) const
{
simgrid::kernel::actor::ActorImpl* owner = nullptr;
const char* file = nullptr;
int line = -1;
- ObjectOwner(simgrid::kernel::actor::ActorImpl* o) : owner(o) {}
+ explicit ObjectOwner(simgrid::kernel::actor::ActorImpl* o) : owner(o) {}
};
std::unordered_map<void*, ObjectOwner*> owners;
{
if (owners.empty())
std::atexit(clean_owners);
- auto it = owners.find(object);
- if (it != owners.end())
+ if (auto it = owners.find(object); it != owners.end())
return it->second;
auto* o = new ObjectOwner(nullptr);
owners.emplace(object, o);
[self, objaddr, objname]() -> void {
XBT_INFO("%s releases %s", self->get_cname(), objname);
auto* ownership = get_owner(objaddr);
- xbt_assert(ownership->owner == self, "safety check failed: I'm not owner of the object I'm releasing.");
+ xbt_assert(ownership->owner == self, "safety check failed: %s is not owner of the object it's releasing.",
+ self->get_cname());
ownership->owner = nullptr;
},
&observer);