PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then
This commit is contained in:
parent
2b74d82f13
commit
014c83ff5a
4 changed files with 6 additions and 12 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue