This PR intends to resolve #15227.
configure --enable-debug
enables #ifdef DEBUG_LOCKORDER
.
Then lockdata
(in sync.cpp) will be initialized same as other static objects.
But unfortunately, lockdata.push_lock()
was called before its initialization (via initializing signatureCache
which is declared in script/sigcache.cpp
) on macOS.
This PR apply the “Construct On First Use Idiom” to lockdata
to prevent it.
edited — fix typo.