Double checked locking and GCJ?
Martin Egholm Nielsen
martin@egholm-nielsen.dk
Tue Jun 28 11:10:00 GMT 2005
> > 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)
> I think it depends on the memory model of the particular hardware on
> which the program is executing. For it to be otherwise, every access
> to a volatile would require a full memory barrier, and I don't think
> we do that.
Oh, ok... I wont do it then...
Thanks,
Martin
More information about the Java
mailing list