TwiceAsNice  2019-02-18
Classes | Macros | Typedefs | Functions | Variables
threads.h File Reference
#include <pthread.h>
#include <signal.h>
Include dependency graph for threads.h:

Classes

struct  _threads_gate_t
 

Macros

#define STATE_FREE   0
 
#define STATE_READY   1
 
#define STATE_BUSY   2
 
#define QPTHREAD_ATTR_INIT(pthread_attr)
 
#define QPTHREAD_ATTR_SETDETACHSTATE(pthread_attr, attr)
 
#define QPTHREAD_ATTR_DESTROY(pthread_attr)
 
#define QPTHREAD_CREATE(pthread, attr, func, arg)
 
#define QPTHREAD_CANCEL(pthread)
 
#define QPTHREAD_JOIN(pthread, ret)
 
#define QPTHREAD_MUTEX_INIT(mutex, attr)
 
#define QPTHREAD_MUTEX_LOCK(mutex)
 
#define QPTHREAD_MUTEX_UNLOCK(mutex)
 
#define QPTHREAD_MUTEX_DESTROY(mutex)
 
#define QPTHREAD_COND_INIT(cond, attr)
 
#define QPTHREAD_COND_WAIT(cond, mutex)
 
#define QPTHREAD_COND_BROADCAST(cond)
 
#define QPTHREAD_COND_SIGNAL(cond)
 
#define QPTHREAD_COND_DESTROY(cond)
 

Typedefs

typedef struct _threads_gate_t threads_gate_t
 

Functions

threads_gate_tthreads_gate_init (int nthreads, void(*func)(void))
 
void threads_gate_end (threads_gate_t *gate)
 
void threads_gate_sync (threads_gate_t *gate)
 

Variables

int nproc
 

Macro Definition Documentation

◆ QPTHREAD_ATTR_DESTROY

#define QPTHREAD_ATTR_DESTROY (   pthread_attr)
Value:
{if (pthread_attr_destroy(pthread_attr)) \
error(EXIT_FAILURE, \
"*Error*: pthread_attr_destroy() failed for ",#pthread_attr);;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_ATTR_INIT

#define QPTHREAD_ATTR_INIT (   pthread_attr)
Value:
{if (pthread_attr_init(pthread_attr)) \
error(EXIT_FAILURE, \
"*Error*: pthread_attr_init() failed for ", #pthread_attr );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_ATTR_SETDETACHSTATE

#define QPTHREAD_ATTR_SETDETACHSTATE (   pthread_attr,
  attr 
)
Value:
{if (pthread_attr_setdetachstate(pthread_attr, attr)) \
error(EXIT_FAILURE, \
"*Error*: pthread_attr_setdetachstate() failed for ", \
#pthread_attr );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_CANCEL

#define QPTHREAD_CANCEL (   pthread)
Value:
{if (pthread_cancel(pthread)) \
warning( \
"failed to cancel ", #pthread );;}

◆ QPTHREAD_COND_BROADCAST

#define QPTHREAD_COND_BROADCAST (   cond)
Value:
{if (pthread_cond_broadcast(cond)) \
error(EXIT_FAILURE, \
"*Error*: pthread_cond_broadcast() failed for ", #cond );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_COND_DESTROY

#define QPTHREAD_COND_DESTROY (   cond)
Value:
{if (pthread_cond_destroy(cond)) \
error(EXIT_FAILURE, \
"*Error*: pthread_cond_destroy() failed for ", #cond );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_COND_INIT

#define QPTHREAD_COND_INIT (   cond,
  attr 
)
Value:
{if (pthread_cond_init(cond, attr)) \
error(EXIT_FAILURE, \
"*Error*: pthread_cond_init() failed for ", #cond );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_COND_SIGNAL

#define QPTHREAD_COND_SIGNAL (   cond)
Value:
{if (pthread_cond_signal(cond)) \
error(EXIT_FAILURE, \
"*Error*: pthread_cond_signal() failed for ", #cond );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_COND_WAIT

#define QPTHREAD_COND_WAIT (   cond,
  mutex 
)
Value:
{if (pthread_cond_wait(cond, mutex)) \
error(EXIT_FAILURE, \
"*Error*: pthread_cond_wait() failed for ", #cond );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_CREATE

#define QPTHREAD_CREATE (   pthread,
  attr,
  func,
  arg 
)
Value:
{if (pthread_create(pthread, attr, func, arg)) \
error(EXIT_FAILURE, \
"*Error*: pthread_create() failed for ", #pthread );;}
arg demonstrates additional data passing to expfit jacexpfit arg
Definition: lmdemo.m:17
static void func(double *p, double *hx, int m, int n, void *adata)
Definition: levmar.c:95
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_JOIN

#define QPTHREAD_JOIN (   pthread,
  ret 
)
Value:
{if (pthread_join(pthread, ret)) \
error(EXIT_FAILURE, \
"*Error*: pthread_join() failed for ", #pthread );;}
ret
Definition: meteoRRD_createRRD.py:13
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_MUTEX_DESTROY

#define QPTHREAD_MUTEX_DESTROY (   mutex)
Value:
{if (pthread_mutex_destroy(mutex)) \
error(EXIT_FAILURE, \
"*Error*: pthread_mutex_destroy() failed for ", #mutex );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_MUTEX_INIT

#define QPTHREAD_MUTEX_INIT (   mutex,
  attr 
)
Value:
{if (pthread_mutex_init(mutex, attr)) \
error(EXIT_FAILURE, \
"*Error*: pthread_mutex_init() failed for ", #mutex );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_MUTEX_LOCK

#define QPTHREAD_MUTEX_LOCK (   mutex)
Value:
{if (pthread_mutex_lock(mutex)) \
error(EXIT_FAILURE, \
"*Error*: pthread_mutex_lock() failed for ", #mutex );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ QPTHREAD_MUTEX_UNLOCK

#define QPTHREAD_MUTEX_UNLOCK (   mutex)
Value:
{if (pthread_mutex_unlock(mutex)) \
error(EXIT_FAILURE, \
"*Error*: pthread_mutex_unlock() failed for ", #mutex );;}
#define EXIT_FAILURE
Definition: define.h:111

◆ STATE_BUSY

#define STATE_BUSY   2

◆ STATE_FREE

#define STATE_FREE   0

◆ STATE_READY

#define STATE_READY   1

Typedef Documentation

◆ threads_gate_t

Function Documentation

◆ threads_gate_end()

void threads_gate_end ( threads_gate_t gate)

◆ threads_gate_init()

threads_gate_t* threads_gate_init ( int  nthreads,
void(*)(void)  func 
)

◆ threads_gate_sync()

void threads_gate_sync ( threads_gate_t gate)

Variable Documentation

◆ nproc

int nproc