Explorar o código

fix(multithreading): Add missing lock/unlock in UA_Server_writeObjectProperty_scalar

Ubuntu %!s(int64=5) %!d(string=hai) anos
pai
achega
d567321847
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      src/server/ua_services_attribute.c

+ 4 - 1
src/server/ua_services_attribute.c

@@ -1726,5 +1726,8 @@ UA_Server_writeObjectProperty_scalar(UA_Server *server, const UA_NodeId objectId
     UA_Variant var;
     UA_Variant_init(&var);
     UA_Variant_setScalar(&var, (void*)(uintptr_t)value, type);
-    return writeObjectProperty(server, objectId, propertyName, var);
+    UA_LOCK(server->serviceMutex);
+    UA_StatusCode retval = writeObjectProperty(server, objectId, propertyName, var);
+    UA_UNLOCK(server->serviceMutex);
+    return retval;
 }