Ticket #117 (closed defect: wontfix)
Opened 11 years ago
Memory model problem in synchronized block trafo
| Reported by: | Bernhard Haumacher (haui at haumacher dot de) | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.07a |
| Component: | JP trafo | Version: | |
| Severity: | normal | Keywords: | |
| Cc: |
Description
If the locking expression in a synchronized block is determined to be of remote type, only remote locking via the _enter() and _exit() methods is generated. This is illegal according to the Java memory model, because the thread entering the remotely synchronized block may not see locally updated memory and may not flush its local memory to global memory after exiting the remotely synchronized block.
Evaluation
This behavior may only be noticed when using JavaParty on a cluster of SMP nodes.
Evaluation
Most probably this is not a problem, since KaRMI (and RMI?) have some synchronization on the call path of a remote method invocation. This synchronization will force the local cache of a thread to be flushed during the remote _enter() and _exit() calls.
See also
closed since 1.07a.
