Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
When executing functions Edgent ensures that any execution of the function's method "happens-after" a previous execution. This provides rules for Memory consistency effects (Java memory model).
In most cases this allows the lambda expression or function class to not have to deal with synchronization issues, thus making development easier. This is similar to how an ExecutorService defines it's memory consistency.
This needs to be documented.
Then this is implemented by attempting to see if the function's implementation class needs synchronization, see if it is immutable. In some cases we create a synchronized version of the function when there is no need, e.g. generate() where a single thread is executing the function.