#include "adapter/adapi.h"
#include "daemon/engine.h"
#include "daemon/worker.h"
#include "shared/allocator.h"
#include "scheduler/schedule.h"
#include "scheduler/task.h"
#include "shared/locks.h"
#include "shared/log.h"
#include "shared/status.h"
#include "shared/util.h"
#include "signer/tools.h"
#include "signer/zone.h"
#include "signer/zonedata.h"
#include <time.h>
Go to the source code of this file.
Functions | |
worker_type * | worker_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) |
Variables | |
ods_lookup_table | worker_str [] |
void worker_cleanup | ( | worker_type * | worker | ) |
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 | |||
) |
Create worker.
Definition at line 62 of file worker.c.
References worker_struct::allocator, allocator_alloc(), worker_struct::clock_in, worker_struct::engine, worker_struct::jobs_appointed, worker_struct::jobs_completed, worker_struct::jobs_failed, lock_basic_init, lock_basic_lock, lock_basic_set, lock_basic_unlock, worker_struct::need_to_exit, ods_log_assert, ods_log_debug(), worker_struct::sleeping, worker_struct::task, worker_struct::thread_num, worker_struct::type, worker_struct::waiting, worker_struct::worker_alarm, worker_struct::worker_lock, and worker_struct::working_with.
void worker_notify | ( | lock_basic_type * | lock, | |
cond_basic_type * | condition | |||
) |
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.
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.
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 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 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 | |||
) |
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 | ) |
Wake up worker.
Definition at line 751 of file worker.c.
References lock_basic_alarm, lock_basic_lock, lock_basic_unlock, ods_log_assert, ods_log_debug(), worker_struct::sleeping, worker_struct::thread_num, worker_struct::type, worker_struct::waiting, worker_struct::worker_alarm, and worker_struct::worker_lock.
Referenced by engine_wakeup_workers().