mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-01-06 14:59:36 -05:00
- don't open pipes that are unused (no pipes if 1 thread only).
- SIGTERM. git-svn-id: file:///svn/unbound/trunk@149 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
af2f95454a
commit
04e0a37e53
2 changed files with 21 additions and 15 deletions
|
|
@ -262,21 +262,23 @@ worker_create(struct daemon* daemon, int id)
|
|||
{
|
||||
struct worker* worker = (struct worker*)calloc(1,
|
||||
sizeof(struct worker));
|
||||
int sv[2];
|
||||
if(!worker)
|
||||
return NULL;
|
||||
worker->daemon = daemon;
|
||||
worker->thread_num = id;
|
||||
worker->cmd_send_fd = -1;
|
||||
worker->cmd_recv_fd = -1;
|
||||
/* create socketpair to communicate with worker */
|
||||
if(socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == -1) {
|
||||
free(worker);
|
||||
log_err("socketpair: %s", strerror(errno));
|
||||
return NULL;
|
||||
if(id != 0) {
|
||||
int sv[2];
|
||||
/* create socketpair to communicate with worker */
|
||||
if(socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == -1) {
|
||||
free(worker);
|
||||
log_err("socketpair: %s", strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
worker->cmd_send_fd = sv[0];
|
||||
worker->cmd_recv_fd = sv[1];
|
||||
}
|
||||
worker->cmd_send_fd = sv[0];
|
||||
worker->cmd_recv_fd = sv[1];
|
||||
return worker;
|
||||
}
|
||||
|
||||
|
|
@ -342,13 +344,15 @@ worker_init(struct worker* worker, struct config_file *cfg,
|
|||
worker_delete(worker);
|
||||
return 0;
|
||||
}
|
||||
/* start listening to commands */
|
||||
if(!(worker->cmd_com=comm_point_create_local(worker->base,
|
||||
worker->cmd_recv_fd, buffer_size, worker_handle_control_cmd,
|
||||
worker))) {
|
||||
log_err("could not create control compt.");
|
||||
worker_delete(worker);
|
||||
return 0;
|
||||
if(worker->thread_num != 0) {
|
||||
/* start listening to commands */
|
||||
if(!(worker->cmd_com=comm_point_create_local(worker->base,
|
||||
worker->cmd_recv_fd, buffer_size,
|
||||
worker_handle_control_cmd, worker))) {
|
||||
log_err("could not create control compt.");
|
||||
worker_delete(worker);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* set forwarder address */
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
- log code prints thread id.
|
||||
- unbound can thread itself, with reload(HUP) and quit working
|
||||
correctly.
|
||||
- don't open pipes for #0, doesn't need it.
|
||||
- listens to SIGTERM, SIGQUIT, SIGINT (all quit) and SIGHUP (reload).
|
||||
|
||||
23 February 2007: Wouter
|
||||
- Can do reloads on sigHUP. Everything is stopped, and freed,
|
||||
|
|
|
|||
Loading…
Reference in a new issue