$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Alexander Terekhov (terekhov_at_[hidden])
Date: 2001-08-13 13:54:39
> Hmm, I'm not sure about static, since we are bound to get caught up in
> scoping issues between translation units again...
*local* static.. e.g.
static pthread_once_t s_once_control = PTHREAD_ONCE_INIT;
static atexit_impl_singleton* atexit_impl_singleton::s_instance = 0;
static void s_create_mysingleton()
{
// ctor sets the atexit_impl_singleton::s_instance pointer/
// dtor resets the pointer after calling all registered
// handlers using some while !coll.empty loop processing
// elements in LIFO order
static
atexit_impl_singleton
the_atexit_impl_singleton();
}
void my_atexit( .... )
{
pthread_once( &s_once_control,s_create_mysingleton );
if ( 0 == atexit_impl_singleton::s_instance )
{ /* error handling */ }
// internally synchronized method
atexit_impl_singleton::s_instance->register( .... );
}
or something similar but simply with statically initialized
mutex.
regards,
alexander.