13 #ifndef STXXL_SINGLETON_HEADER
14 #define STXXL_SINGLETON_HEADER
25 template <
typename INSTANCE,
bool destroy_on_exit = true>
35 static void destroy_instance();
41 return create_instance();
47 template <
typename INSTANCE,
bool destroy_on_exit>
48 typename singleton<INSTANCE, destroy_on_exit>::instance_pointer
51 static mutex create_mutex;
61 template <
typename INSTANCE,
bool destroy_on_exit>
70 template <
typename INSTANCE,
bool destroy_on_exit>
76 #endif // !STXXL_SINGLETON_HEADER
instance_type * instance_pointer
static instance_pointer get_instance()
Aquire a lock that's valid until the end of scope.
#define STXXL_BEGIN_NAMESPACE
choose_int_types< my_pointer_size >::unsigned_type unsigned_type
int register_exit_handler(void(*function)(void))
volatile instance_pointer volatile_instance_pointer
static volatile_instance_pointer instance
#define STXXL_END_NAMESPACE