From: Witold KrÄ™cicki Date: Thu, 18 Oct 2018 22:00:15 +0000 (+0000) Subject: Use multiple worker queues (using isc_task_sendto()) in unix socket code X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51c1c94adf52180c0a7b9846fdfe7828241439b5;p=thirdparty%2Fbind9.git Use multiple worker queues (using isc_task_sendto()) in unix socket code --- diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 38a057b708d..7e355ba848d 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -2803,9 +2803,9 @@ send_recvdone_event(isc__socket_t *sock, isc_socketevent_t **dev) { if (((*dev)->attributes & ISC_SOCKEVENTATTR_ATTACHED) == ISC_SOCKEVENTATTR_ATTACHED) - isc_task_sendanddetach(&task, (isc_event_t **)dev); + isc_task_sendtoanddetach(&task, (isc_event_t **)dev, sock->threadid); else - isc_task_send(task, (isc_event_t **)dev); + isc_task_sendto(task, (isc_event_t **)dev, sock->threadid); } /* @@ -2827,9 +2827,9 @@ send_senddone_event(isc__socket_t *sock, isc_socketevent_t **dev) { if (((*dev)->attributes & ISC_SOCKEVENTATTR_ATTACHED) == ISC_SOCKEVENTATTR_ATTACHED) - isc_task_sendanddetach(&task, (isc_event_t **)dev); + isc_task_sendtoanddetach(&task, (isc_event_t **)dev, sock->threadid); else - isc_task_send(task, (isc_event_t **)dev); + isc_task_sendto(task, (isc_event_t **)dev, sock->threadid); } /* @@ -2849,7 +2849,7 @@ send_connectdone_event(isc__socket_t *sock, isc_socket_connev_t **dev) { if (ISC_LINK_LINKED(*dev, ev_link)) ISC_LIST_DEQUEUE(sock->connect_list, *dev, ev_link); - isc_task_sendanddetach(&task, (isc_event_t **)dev); + isc_task_sendtoanddetach(&task, (isc_event_t **)dev, sock->threadid); } /* @@ -3106,7 +3106,7 @@ internal_accept(isc__socket_t *sock) { task = dev->ev_sender; dev->ev_sender = sock; - isc_task_sendanddetach(&task, ISC_EVENT_PTR(&dev)); + isc_task_sendtoanddetach(&task, ISC_EVENT_PTR(&dev), sock->threadid); return; soft_error: @@ -4892,7 +4892,7 @@ isc_socket_connect(isc_socket_t *sock0, const isc_sockaddr_t *addr, if (sock->connected) { INSIST(isc_sockaddr_equal(&sock->peer_address, addr)); dev->result = ISC_R_SUCCESS; - isc_task_send(task, ISC_EVENT_PTR(&dev)); + isc_task_sendto(task, ISC_EVENT_PTR(&dev), sock->threadid); UNLOCK(&sock->lock); @@ -4956,7 +4956,7 @@ isc_socket_connect(isc_socket_t *sock0, const isc_sockaddr_t *addr, err_exit: sock->connected = 0; - isc_task_send(task, ISC_EVENT_PTR(&dev)); + isc_task_sendto(task, ISC_EVENT_PTR(&dev), sock->threadid); UNLOCK(&sock->lock); inc_stats(sock->manager->stats, @@ -4972,7 +4972,7 @@ isc_socket_connect(isc_socket_t *sock0, const isc_sockaddr_t *addr, sock->connected = 1; sock->bound = 1; dev->result = ISC_R_SUCCESS; - isc_task_send(task, ISC_EVENT_PTR(&dev)); + isc_task_sendto(task, ISC_EVENT_PTR(&dev), sock->threadid); UNLOCK(&sock->lock); @@ -5258,8 +5258,8 @@ isc_socket_cancel(isc_socket_t *sock0, isc_task_t *task, unsigned int how) { dev->result = ISC_R_CANCELED; dev->ev_sender = sock; - isc_task_sendanddetach(¤t_task, - ISC_EVENT_PTR(&dev)); + isc_task_sendtoanddetach(¤t_task, + ISC_EVENT_PTR(&dev), sock->threadid); } dev = next;