Defines | Typedefs | Functions

/build/buildd-opendnssec_1.3.2-1~bpo60+1-ia64-Ga1C3m/opendnssec-1.3.2/signer/src/shared/locks.h File Reference

#include "config.h"
#include "shared/log.h"
#include <errno.h>
#include <stdlib.h>
Include dependency graph for locks.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define LOCKRET(func)
#define PTHREADS_DISABLED   1
#define lock_basic_init(lock)
#define lock_basic_destroy(lock)
#define lock_basic_lock(lock)
#define lock_basic_unlock(lock)
#define lock_basic_set(cond)
#define lock_basic_sleep(cond, lock, sleep)
#define lock_basic_alarm(cond)
#define lock_basic_broadcast(cond)
#define lock_basic_off(cond)
#define ods_thread_create(thr, func, arg)   ods_thr_fork_create(thr, func, arg)
#define ods_thread_detach(thr)
#define ods_thread_self()   getpid()
#define ods_thread_join(thr)   ods_thr_fork_wait(thr)

Typedefs

typedef int lock_basic_type
typedef pid_t ods_thread_type

Functions

void ods_thr_fork_create (ods_thread_type *thr, void *(*func)(void *), void *arg)
void ods_thr_fork_wait (ods_thread_type thread)
void ods_thread_blocksigs (void)

Define Documentation

#define lock_basic_alarm (   cond  ) 

Definition at line 98 of file locks.h.

Referenced by signal_handler(), worker_notify(), and worker_wakeup().

#define lock_basic_broadcast (   cond  ) 

Definition at line 99 of file locks.h.

Referenced by fifoq_push(), and worker_notify_all().

#define lock_basic_destroy (   lock  ) 
#define lock_basic_init (   lock  ) 
#define lock_basic_lock (   lock  ) 
#define lock_basic_off (   cond  ) 

Definition at line 100 of file locks.h.

Referenced by engine_cleanup(), fifoq_cleanup(), and worker_cleanup().

#define lock_basic_set (   cond  ) 

Definition at line 96 of file locks.h.

Referenced by fifoq_create(), and worker_create().

#define lock_basic_sleep (   cond,
  lock,
  sleep 
)

Definition at line 97 of file locks.h.

Referenced by worker_sleep(), worker_sleep_unless(), and worker_wait().

#define lock_basic_unlock (   lock  ) 
#define LOCKRET (   func  ) 
Value:
do { \
        int err; \
        if ( (err=(func)) != 0) \
                ods_log_error("%s at %d could not " #func ": %s", \
                __FILE__, __LINE__, strerror(err)); \
        } while(0)

Threading and locking.

Definition at line 43 of file locks.h.

#define ods_thread_create (   thr,
  func,
  arg 
)    ods_thr_fork_create(thr, func, arg)

Definition at line 103 of file locks.h.

Referenced by cmdhandler_start().

#define ods_thread_detach (   thr  ) 

Definition at line 104 of file locks.h.

Referenced by cmdhandler_start().

#define ods_thread_join (   thr  )     ods_thr_fork_wait(thr)

Definition at line 106 of file locks.h.

#define ods_thread_self (  )     getpid()

Definition at line 105 of file locks.h.

#define PTHREADS_DISABLED   1

Definition at line 88 of file locks.h.


Typedef Documentation

typedef int lock_basic_type

Definition at line 90 of file locks.h.

typedef pid_t ods_thread_type

Definition at line 102 of file locks.h.


Function Documentation

void ods_thr_fork_create ( ods_thread_type thr,
void *(*)(void *)  func,
void *  arg 
)

No threading available: fork a new process. This means no shared data structure, and no locking. Only the main thread ever returns. Exits on errors.

Parameters:
thr,: the location where to store the thread-id.
func,: function body of the thread. Return value of func is lost.
arg,: user argument to func.

Definition at line 65 of file locks.c.

References ods_fatal_exit().

void ods_thr_fork_wait ( ods_thread_type  thread  ) 

There is no threading. Wait for a process to terminate. Note that ub_thread_t is defined as pid_t.

Parameters:
thread,: the process id to wait for.

Definition at line 90 of file locks.c.

References ods_log_error(), and ods_log_warning().

void ods_thread_blocksigs ( void   ) 

Definition at line 150 of file locks.c.

References ods_fatal_exit().