We're seeing hard locks on some machines in Singleton::Setup::Setup()!

The problem is that it's trying to create a scoped_lock using a mutex that is defined in that file.

Apparently that mutex is not guaranteed to have been initialized at the point where we're calling that function (or something) and it is just hanging while trying to acquire that lock!

We've seen this on two different machines... one of them was an Intel Phi card though so it was hard to diagnose - but we just had it happen again on a regular Xeon box.

I commented out that scoped_lock line and then the binary runs just fine.

Why do we need to lock in those functions?  Surely the Singleton::Setup stuff is NOT going to get called in a loop.

How do we want to proceed?