isc__socketmgr_t *manager = sock->manager;
isc__socketthread_t *thread = NULL;
- isc_refcount_destroy(&sock->references);
-
socket_log(sock, NULL, CREATION, "destroying");
+ isc_refcount_destroy(&sock->references);
+
LOCK(&sock->lock);
INSIST(ISC_LIST_EMPTY(sock->connect_list));
INSIST(ISC_LIST_EMPTY(sock->accept_list));
INSIST(VALID_SOCKET(sock));
INSIST(isc_refcount_current(&sock->references) == 0);
+ LOCK(&sock->lock);
INSIST(!sock->connecting);
INSIST(ISC_LIST_EMPTY(sock->recv_list));
INSIST(ISC_LIST_EMPTY(sock->send_list));
INSIST(ISC_LIST_EMPTY(sock->accept_list));
INSIST(ISC_LIST_EMPTY(sock->connect_list));
INSIST(!ISC_LINK_LINKED(sock, link));
+ UNLOCK(&sock->lock);
sock->common.magic = 0;
sock->common.impmagic = 0;