DbObject::Ptr DbObject::GetOrCreateByObject(const DynamicObject::Ptr& object)
{
+ boost::mutex::scoped_lock lock(GetStaticMutex());
+
DbObject::Ptr dbobj = object->GetExtension("DbObject");
if (dbobj)
dbobj = dbtype->GetOrCreateObjectByName(name1, name2);
- {
- ObjectLock olock(object);
- dbobj->SetObject(object);
- object->SetExtension("DbObject", dbobj);
- }
+ dbobj->SetObject(object);
+ object->SetExtension("DbObject", dbobj);
return dbobj;
}
dbobj->SendVarsStatusUpdate();
}
+
+boost::mutex& DbObject::GetStaticMutex(void)
+{
+ static boost::mutex mutex;
+ return mutex;
+}
static void StateChangedHandler(const DynamicObject::Ptr& object);
static void VarsChangedHandler(const CustomVarObject::Ptr& object);
+ static boost::mutex& GetStaticMutex(void);
friend class DbType;
};