PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then

This commit is contained in:
Christian Thaeter 2010-01-30 08:40:38 +01:00
parent 2b74d82f13
commit 014c83ff5a
4 changed files with 6 additions and 12 deletions

View file

@ -72,8 +72,7 @@ lumiera_error_tls_init (void)
LumieraErrorcontext
lumiera_error_get (void)
{
if (lumiera_error_initialized == PTHREAD_ONCE_INIT)
pthread_once (&lumiera_error_initialized, lumiera_error_tls_init);
pthread_once (&lumiera_error_initialized, lumiera_error_tls_init);
LumieraErrorcontext self = pthread_getspecific (lumiera_error_tls);
if (!self)

View file

@ -46,8 +46,7 @@ lumiera_reccondition_init (LumieraReccondition self,
{
if (self)
{
if (recursive_mutexattr_once == PTHREAD_ONCE_INIT)
pthread_once (&recursive_mutexattr_once, recursive_mutexattr_init);
pthread_once (&recursive_mutexattr_once, recursive_mutexattr_init);
pthread_cond_init (&self->cond, NULL);
pthread_mutex_init (&self->reccndmutex, &recursive_mutexattr);

View file

@ -74,8 +74,7 @@ lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resourc
{
TRACE (resourcecollector_dbg);
if (lumiera_resourcecollector_once == PTHREAD_ONCE_INIT)
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock)
{
@ -120,8 +119,7 @@ lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resourc
LumieraResourcehandler
lumiera_resourcecollector_register_handler (enum lumiera_resource resource, lumiera_resource_handler_fn handler, void* data)
{
if (lumiera_resourcecollector_once == PTHREAD_ONCE_INIT)
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
TRACE (resourcecollector_dbg);

View file

@ -122,8 +122,7 @@ lumiera_tmpbuf_init (void)
void
lumiera_tmpbuf_freeall (void)
{
if (lumiera_tmpbuf_tls_once == PTHREAD_ONCE_INIT)
pthread_once (&lumiera_tmpbuf_tls_once, lumiera_tmpbuf_init);
pthread_once (&lumiera_tmpbuf_tls_once, lumiera_tmpbuf_init);
struct lumiera_tmpbuf_struct* buf = pthread_getspecific (lumiera_tmpbuf_tls_key);
if (buf)
@ -139,8 +138,7 @@ lumiera_tmpbuf_freeall (void)
void*
lumiera_tmpbuf_provide (size_t size)
{
if (lumiera_tmpbuf_tls_once == PTHREAD_ONCE_INIT)
pthread_once (&lumiera_tmpbuf_tls_once, lumiera_tmpbuf_init);
pthread_once (&lumiera_tmpbuf_tls_once, lumiera_tmpbuf_init);
struct lumiera_tmpbuf_struct* buf = pthread_getspecific (lumiera_tmpbuf_tls_key);
if (!buf)