Data Structures | Typedefs | Enumerations | Functions

/srv/bpo/opendnssec/opendnssec-1.3.2/signer/src/daemon/worker.h File Reference

#include "scheduler/task.h"
#include "shared/allocator.h"
#include "shared/locks.h"
#include <time.h>
Include dependency graph for worker.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  worker_struct

Typedefs

typedef enum worker_enum worker_id
typedef struct worker_struct worker_type

Enumerations

enum  worker_enum { WORKER_NONE = 0, WORKER_WORKER = 1, WORKER_DRUDGER }

Functions

worker_typeworker_create (allocator_type *allocator, int num, worker_id type)
void worker_start (worker_type *worker)
void worker_sleep (worker_type *worker, time_t timeout)
void worker_sleep_unless (worker_type *worker, time_t timeout)
void worker_wakeup (worker_type *worker)
void worker_wait (lock_basic_type *lock, cond_basic_type *condition)
void worker_notify (lock_basic_type *lock, cond_basic_type *condition)
void worker_notify_all (lock_basic_type *lock, cond_basic_type *condition)
void worker_cleanup (worker_type *worker)

Typedef Documentation

typedef enum worker_enum worker_id

Definition at line 48 of file worker.h.

typedef struct worker_struct worker_type

Definition at line 52 of file worker.h.


Enumeration Type Documentation

The hard workers.

Enumerator:
WORKER_NONE 
WORKER_WORKER 
WORKER_DRUDGER 

Definition at line 43 of file worker.h.


Function Documentation

void worker_cleanup ( worker_type worker  ) 

Clean up worker.

Parameters:
[in] worker worker to clean up

Clean up worker.

Definition at line 821 of file worker.c.

References worker_struct::allocator, engine_struct::allocator, allocator_deallocate(), lock_basic_destroy, lock_basic_off, worker_struct::worker_alarm, and worker_struct::worker_lock.

Referenced by engine_cleanup().

worker_type* worker_create ( allocator_type allocator,
int  num,
worker_id  type 
)
void worker_notify ( lock_basic_type lock,
cond_basic_type *  condition 
)

Notify a worker.

Parameters:
[in] lock lock to use
[in] condition condition that has been met

Notify a worker.

Definition at line 789 of file worker.c.

References lock_basic_alarm, lock_basic_lock, and lock_basic_unlock.

void worker_notify_all ( lock_basic_type lock,
cond_basic_type *  condition 
)

Notify all workers.

Parameters:
[in] lock lock to use
[in] condition condition that has been met

Notify all workers.

Definition at line 805 of file worker.c.

References lock_basic_broadcast, lock_basic_lock, and lock_basic_unlock.

void worker_sleep ( worker_type worker,
time_t  timeout 
)

Put worker to sleep.

Parameters:
[in] worker put this worker to sleep
[in] timeout time before alarm clock is going off, 0 means no alarm clock is set.

Put worker to sleep.

Definition at line 706 of file worker.c.

References lock_basic_lock, lock_basic_sleep, lock_basic_unlock, ods_log_assert, worker_struct::sleeping, worker_struct::worker_alarm, and worker_struct::worker_lock.

void worker_sleep_unless ( worker_type worker,
time_t  timeout 
)

Put worker to sleep unless the worker has measured up to all appointed jobs.

Parameters:
[in] worker put this worker to sleep
[in] timeout time before alarm clock is going off, 0 means no alarm clock is set.

Put worker to sleep unless worker has measured up to all appointed jobs.

Definition at line 725 of file worker.c.

References worker_struct::jobs_appointed, worker_struct::jobs_completed, worker_struct::jobs_failed, lock_basic_lock, lock_basic_sleep, lock_basic_unlock, worker_struct::need_to_exit, ods_log_assert, ods_log_debug(), worker_struct::sleeping, worker_struct::thread_num, worker_struct::type, worker_struct::worker_alarm, and worker_struct::worker_lock.

void worker_start ( worker_type worker  ) 

Start working.

Parameters:
[in] worker worker to start working

Start worker.

Definition at line 683 of file worker.c.

References ods_log_assert, ods_log_error(), worker_struct::type, WORKER_DRUDGER, and WORKER_WORKER.

void worker_wait ( lock_basic_type lock,
cond_basic_type *  condition 
)

Let worker wait.

Parameters:
[in] lock lock to use
[in] condition condition to be met

Worker waiting.

Definition at line 773 of file worker.c.

References lock_basic_lock, lock_basic_sleep, and lock_basic_unlock.

void worker_wakeup ( worker_type worker  )