OpenDNSSEC-signer 1.2.1
|
#include "scheduler/task.h"
#include "scheduler/locks.h"
#include "signer/zone.h"
#include <time.h>
Go to the source code of this file.
Data Structures | |
struct | worker_struct |
Defines | |
#define | WORKER_WORKER 1 |
Typedefs | |
typedef struct worker_struct | worker_type |
Functions | |
worker_type * | worker_create (int num, int type) |
void | worker_start (worker_type *worker) |
void | worker_perform_task (worker_type *worker, task_type *task) |
void | worker_cleanup (worker_type *worker) |
void | worker_sleep (worker_type *worker, time_t timeout) |
void | worker_wait (worker_type *worker) |
void | worker_wakeup (worker_type *worker) |
void | worker_notify (worker_type *worker) |
#define WORKER_WORKER 1 |
typedef struct worker_struct worker_type |
void worker_cleanup | ( | worker_type * | worker | ) |
Clean up worker.
[in] | worker | clean up this worker |
Clean up worker.
Definition at line 297 of file worker.c.
References lock_basic_destroy, lock_basic_off, se_free(), se_log_warning(), worker_struct::thread_num, worker_struct::worker_alarm, and worker_struct::worker_lock.
Referenced by engine_cleanup().
worker_type* worker_create | ( | int | num, |
int | type | ||
) |
Create worker.
[in] | num | thread number |
[in] | type | type of worker |
The hard workers. Create worker.
Definition at line 51 of file worker.c.
References worker_struct::engineptr, lock_basic_init, lock_basic_lock, lock_basic_set, lock_basic_unlock, worker_struct::need_to_exit, se_log_debug(), se_malloc(), worker_struct::sleeping, worker_struct::task, worker_struct::tasklist, worker_struct::thread_num, worker_struct::type, worker_struct::waiting, worker_struct::worker_alarm, and worker_struct::worker_lock.
void worker_notify | ( | worker_type * | worker | ) |
Notify worker.
[in] | worker | notify this worker |
Notify worker.
Definition at line 371 of file worker.c.
References lock_basic_alarm, lock_basic_lock, lock_basic_unlock, se_log_assert, se_log_debug(), worker_struct::sleeping, worker_struct::thread_num, worker_struct::waiting, worker_struct::worker_alarm, and worker_struct::worker_lock.
void worker_perform_task | ( | worker_type * | worker, |
task_type * | task | ||
) |
Worker perform task.
[in] | worker | worker that picked up the task |
[in] | task | task to be performed |
Worker perform task.
Definition at line 168 of file worker.c.
References zone_struct::backoff, engineconfig_struct::cfg_filename, engine_struct::config, duration2time(), worker_struct::engineptr, se_free(), se_log_assert, se_log_error(), se_log_warning(), se_strdup(), signconf_struct::sig_resign_interval, zone_struct::signconf, TASK_ADDKEYS, TASK_AUDIT, TASK_NONE, TASK_NSECIFY, TASK_READ, TASK_SIGN, TASK_UPDATE, TASK_WRITE, worker_struct::thread_num, time_now(), tools_add_dnskeys(), tools_audit(), tools_nsecify(), tools_read_input(), tools_sign(), tools_update(), tools_write_output(), task_struct::what, task_struct::when, task_struct::who, engineconfig_struct::working_dir, and task_struct::zone.
Referenced by worker_start().
void worker_sleep | ( | worker_type * | worker, |
time_t | timeout | ||
) |
Put worker to sleep.
[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 318 of file worker.c.
References lock_basic_lock, lock_basic_sleep, lock_basic_unlock, se_log_assert, worker_struct::sleeping, worker_struct::worker_alarm, and worker_struct::worker_lock.
Referenced by worker_start().
void worker_start | ( | worker_type * | worker | ) |
Start worker.
[in] | worker | worker to start |
Start worker.
Definition at line 77 of file worker.c.
References zone_struct::in_progress, tasklist_struct::loading, lock_basic_lock, lock_basic_unlock, worker_struct::need_to_exit, zone_struct::processed, se_log_assert, se_log_debug(), se_log_error(), worker_struct::task, task_backup(), task_cleanup(), TASK_NONE, worker_struct::tasklist, tasklist_first_task(), tasklist_struct::tasklist_lock, tasklist_pop_task(), tasklist_schedule_task(), worker_struct::thread_num, time_now(), worker_struct::type, task_struct::what, task_struct::when, task_struct::who, worker_perform_task(), worker_sleep(), WORKER_WORKER, task_struct::zone, and zone_struct::zone_lock.
void worker_wait | ( | worker_type * | worker | ) |
Let worker wait.
[in] | worker | waiting worker |
Worker waiting.
Definition at line 335 of file worker.c.
References lock_basic_lock, lock_basic_sleep, lock_basic_unlock, se_log_assert, worker_struct::waiting, worker_struct::worker_alarm, and worker_struct::worker_lock.
void worker_wakeup | ( | worker_type * | worker | ) |
Wake up worker.
[in] | worker | wake up this worker |
Wake up worker.
Definition at line 351 of file worker.c.
References lock_basic_alarm, lock_basic_lock, lock_basic_unlock, se_log_assert, se_log_debug(), worker_struct::sleeping, worker_struct::thread_num, worker_struct::waiting, worker_struct::worker_alarm, and worker_struct::worker_lock.