Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This seems to reduce the amount of failure, but I don't know why :(
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Fri, 10 Mar 2023 22:34:07 +0000 (23:34 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 12 Mar 2023 20:50:34 +0000 (21:50 +0100)
Not sure I know what I'm doing here :(

src/sthread/ObjectAccess.cpp

index 35994bd..d608dff 100644 (file)
@@ -71,7 +71,7 @@ static ObjectOwner* get_owner(void* object)
   if (it != owners.end())
     return it->second;
   auto* o = new ObjectOwner(nullptr);
   if (it != owners.end())
     return it->second;
   auto* o = new ObjectOwner(nullptr);
-  owners.emplace(object, o);
+  owners.insert({object, o});
   return o;
 }
 
   return o;
 }
 
@@ -118,7 +118,8 @@ void sthread_access_end(void* objaddr, const char* objname, const char* file, in
       [self, objaddr, objname]() -> void {
         XBT_INFO("%s releases %s", self->get_cname(), objname);
         auto* ownership = get_owner(objaddr);
       [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);
         ownership->owner = nullptr;
       },
       &observer);