c4c8be61e0
Added a meta-attrbute class `io.murano.metadata.Synchronize` which may be attached to any Murano methods to control which objects should Murano Executor use as synchronization primitives for concurrent exeutions of the marked methods. No two methods cannot be called concurrently if their use the same synhronization objects. By default (if no attribute is present) the old behavior is preserved: method calls are synchronized on the objects they are called for. The attribute has two properties: * `onThis` (defaults to true) indicates that the method calls should be synchronized on target object. * `onArgs` (defaults to an empty list) indicated that the method calls should be synchronized on the values of arguments with the specified names. Truly 'thread-safe' methods may be declared by providing this attribute with `onThis` set to 'false' and `onArgs` set to default empty list value. Executor is modified to properly use this attribute. Targets-blueprint: application-development-framework Change-Id: Iea028df1105c57a31a22887916c2428929b83e59 |
||
---|---|---|
.. | ||
principal_objects | ||
__init__.py | ||
attribute_store.py | ||
constants.py | ||
context_manager.py | ||
dsl_exception.py | ||
dsl_types.py | ||
dsl.py | ||
exceptions.py | ||
executor.py | ||
expressions.py | ||
helpers.py | ||
lhs_expression.py | ||
macros.py | ||
meta.py | ||
murano_method.py | ||
murano_object.py | ||
murano_package.py | ||
murano_property.py | ||
murano_type.py | ||
namespace_resolver.py | ||
object_store.py | ||
package_loader.py | ||
reflection.py | ||
serializer.py | ||
session_local_storage.py | ||
type_scheme.py | ||
typespec.py | ||
virtual_exceptions.py | ||
yaql_expression.py | ||
yaql_functions.py | ||
yaql_integration.py |