Hi there,
Sorry for bringing up what may be the most tedious thread ever. But does
"double checked locking" work with GCJ:
// Works with acquire/release semantics for volatile
// Broken under current semantics for volatile
class Foo {
private volatile Helper helper = null;
public Helper getHelper() {
if (helper == null) {
synchronized(this) {
if (helper == null)
helper = new Helper();
}
}
return helper;
}
}
(From:
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html)
BR,
Martin Egholm