OpenDNSSEC-signer
1.4.5
Main Page
Data Structures
Files
File List
Globals
signer
src
daemon
worker.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 NLNet Labs. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
*
13
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
*
25
*/
26
32
#ifndef DAEMON_WORKER_H
33
#define DAEMON_WORKER_H
34
35
#include "
scheduler/task.h
"
36
#include "
shared/allocator.h
"
37
#include "
shared/locks.h
"
38
39
#include <time.h>
40
41
enum
worker_enum
{
42
WORKER_NONE
= 0,
43
WORKER_WORKER
= 1,
44
WORKER_DRUDGER
45
};
46
typedef
enum
worker_enum
worker_id
;
47
48
typedef
struct
worker_struct
worker_type
;
49
struct
worker_struct
{
50
allocator_type
*
allocator
;
51
int
thread_num
;
52
ods_thread_type
thread_id
;
53
void
*
engine
;
54
task_type
*
task
;
55
task_id
working_with
;
56
worker_id
type
;
57
time_t
clock_in
;
58
size_t
jobs_appointed
;
59
size_t
jobs_completed
;
60
size_t
jobs_failed
;
61
cond_basic_type
worker_alarm
;
62
lock_basic_type
worker_lock
;
63
unsigned
sleeping
: 1;
64
unsigned
waiting
: 1;
65
unsigned
need_to_exit
: 1;
66
};
67
76
worker_type
*
worker_create
(
allocator_type
* allocator,
int
num,
77
worker_id
type);
78
84
void
worker_start
(
worker_type
* worker);
85
93
void
worker_sleep
(
worker_type
* worker, time_t timeout);
94
103
void
worker_sleep_unless
(
worker_type
* worker, time_t timeout);
104
110
void
worker_wakeup
(
worker_type
* worker);
111
118
void
worker_wait
(
lock_basic_type
* lock, cond_basic_type* condition);
119
126
void
worker_wait_timeout
(
lock_basic_type
* lock, cond_basic_type* condition,
127
time_t timeout);
128
135
void
worker_notify
(
lock_basic_type
* lock, cond_basic_type* condition);
136
143
void
worker_notify_all
(
lock_basic_type
* lock, cond_basic_type* condition);
144
150
void
worker_cleanup
(
worker_type
* worker);
151
152
#endif
/* DAEMON_WORKER_H */
Generated on Tue Jul 22 2014 00:37:52 for OpenDNSSEC-signer by
1.8.1.2