This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Double checked locking and GCJ?


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]