Re: Question about singleton class design for tracing
On Thu, 24 May 2007 02:36:44 -0700, James Kanze wrote:
static Trace_State& Instance()
{
if ( m_instance == 0 )
{
m_instance = new Trace_State();
}
return *m_instance;
}
I'd prefer declare m_instance as static variable in this function, and
of course initiate it :)
This has the disadvantage that the destructor will be called,
potentially leading to order of destruction issues.
Right now I am trying to track down a segfault that occurs in my program.
I find the segfault always has my tracing class as the last point in my
program where control goes through before heading into the STL code. If I
comment out that use of the tracing library then the segfault at that
location disappears. It will occur at the next location using the tracing
library. So I believe the problem is the tracing library design as a
singleton. How can I create a singleton that will not suffer from the
"order of destruction" issue?