git-svn-id: file:///svn/unbound/trunk@156 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
Wouter Wijngaards 2007-02-27 14:28:20 +00:00
parent 8b4c06230c
commit 06af702c20
4 changed files with 10 additions and 12 deletions

View file

@ -203,7 +203,7 @@ daemon_start_others(struct daemon* daemon)
{
int i;
log_assert(daemon);
log_info("start others");
verbose(VERB_ALGO, "start threads");
/* skip i=0, is this thread */
for(i=1; i<daemon->num; i++) {
ub_thread_create(&daemon->workers[i]->thr_id,
@ -225,20 +225,19 @@ daemon_stop_others(struct daemon* daemon)
{
int i;
log_assert(daemon);
log_info("stop others");
verbose(VERB_ALGO, "stop threads");
/* skip i=0, is this thread */
/* use i=0 buffer for sending cmds; because we are #0 */
for(i=1; i<daemon->num; i++) {
log_info("killing thread %d", i);
worker_send_cmd(daemon->workers[i],
daemon->workers[0]->front->udp_buff, worker_cmd_quit);
}
/** wait for them to quit */
for(i=1; i<daemon->num; i++) {
/* join it to make sure its dead */
log_info("join %d", i);
verbose(VERB_ALGO, "join %d", i);
ub_thread_join(daemon->workers[i]->thr_id);
log_info("join success %d", i);
verbose(VERB_ALGO, "join success %d", i);
}
}
@ -246,7 +245,6 @@ void
daemon_fork(struct daemon* daemon)
{
log_assert(daemon);
log_info("daemon_fork");
/* first create all the worker structures, so we can pass
* them to the newly created threads.
*/

View file

@ -94,7 +94,8 @@ worker_handle_reply(struct comm_point* c, void* arg, int error,
struct comm_reply* ATTR_UNUSED(reply_info))
{
struct worker* worker = (struct worker*)arg;
log_info("reply to query with stored ID %d", worker->query_id);
verbose(VERB_DETAIL, "reply to query with stored ID %d",
worker->query_id);
LDNS_ID_SET(ldns_buffer_begin(worker->query_reply.c->buffer),
worker->query_id);
if(error != 0) {
@ -125,7 +126,7 @@ worker_process_query(struct worker* worker)
/* query the forwarding address */
worker->query_id = LDNS_ID_WIRE(ldns_buffer_begin(
worker->query_reply.c->buffer));
log_info("stored in process_query ID %d", worker->query_id);
verbose(VERB_DETAIL, "process_query ID %d", worker->query_id);
pending_udp_query(worker->back, worker->query_reply.c->buffer,
&worker->fwd_addr, worker->fwd_addrlen, UDP_QUERY_TIMEOUT,
worker_handle_reply, worker, worker->rndstate);
@ -183,10 +184,9 @@ worker_handle_control_cmd(struct comm_point* c, void* arg, int error,
if(error != NETEVENT_NOERROR) {
if(error == NETEVENT_CLOSED)
comm_base_exit(worker->base);
else log_info("control cmd: %d", error);
else log_info("control event: %d", error);
return 0;
}
log_info("control cmd");
if(ldns_buffer_limit(c->buffer) != sizeof(uint32_t)) {
fatal_exit("bad control msg length %d",
(int)ldns_buffer_limit(c->buffer));
@ -194,6 +194,7 @@ worker_handle_control_cmd(struct comm_point* c, void* arg, int error,
cmd = ldns_buffer_read_u32(c->buffer);
switch(cmd) {
case worker_cmd_quit:
verbose(VERB_ALGO, "got control cmd quit");
comm_base_exit(worker->base);
break;
default:

View file

@ -11,6 +11,7 @@
No memory is leaking during reloads, service of queries, etc.
- test that uses ldns-testns -f to test threading. Have to answer
three queries at the same time.
- with verbose=0 operates quietly.
26 February 2007: Wouter
- ub_random code used to select ID and port.

View file

@ -51,7 +51,6 @@ ub_thread_blocksigs()
int err;
sigset_t sigset;
sigfillset(&sigset);
log_info("blocking signals");
#ifdef HAVE_PTHREAD
if((err=pthread_sigmask(SIG_SETMASK, &sigset, NULL)))
fatal_exit("pthread_sigmask: %s", strerror(err));
@ -74,7 +73,6 @@ void ub_thread_sig_unblock(int sig)
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, sig);
log_info("unblocking signal %d", sig);
#ifdef HAVE_PTHREAD
if((err=pthread_sigmask(SIG_UNBLOCK, &sigset, NULL)))
fatal_exit("pthread_sigmask: %s", strerror(err));