Double-Checked Locking is Broken Posted on July 14, 2006 by sharathIn Programming Whoa! This was a real eye opener for me. It so easy to make this mistake, I believe the problem is extending the simple Test-Test-Set primitive to higher level languages. You must read http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html