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

AltStyle によって変換されたページ (->オリジナル) /