Using nxt_lvlhsh_peek() for port hashes.

This commit is contained in:
Igor Sysoev 2018-03-29 16:35:38 +03:00
parent 7205bf4b86
commit 5a9c23e2b4
3 changed files with 7 additions and 19 deletions

View file

@ -42,13 +42,9 @@ static const nxt_lvlhsh_proto_t lvlhsh_ports_proto nxt_aligned(64) = {
nxt_port_t *
nxt_port_hash_first(nxt_lvlhsh_t *port_hash, nxt_lvlhsh_each_t *lhe)
nxt_port_hash_retrieve(nxt_lvlhsh_t *port_hash)
{
nxt_memzero(lhe, sizeof(nxt_lvlhsh_each_t));
lhe->proto = &lvlhsh_ports_proto;
return nxt_port_hash_next(port_hash, lhe);
return nxt_lvlhsh_retrieve(port_hash, &lvlhsh_ports_proto, NULL);
}

View file

@ -18,11 +18,7 @@ nxt_int_t nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
nxt_port_t *nxt_port_hash_find(nxt_lvlhsh_t *port_hash, nxt_pid_t pid,
nxt_port_id_t port_id);
nxt_port_t *nxt_port_hash_first(nxt_lvlhsh_t *port_hash,
nxt_lvlhsh_each_t *lhe);
#define nxt_port_hash_next(port_hash, lhe) \
nxt_lvlhsh_each((port_hash), (lhe))
nxt_port_t *nxt_port_hash_retrieve(nxt_lvlhsh_t *port_hash);
#endif /* _NXT_PORT_HASH_H_INCLIDED_ */

View file

@ -1585,8 +1585,7 @@ nxt_runtime_process_new(nxt_runtime_t *rt)
static void
nxt_runtime_process_destroy(nxt_runtime_t *rt, nxt_process_t *process)
{
nxt_port_t *port;
nxt_lvlhsh_each_t lhe;
nxt_port_t *port;
nxt_assert(process->use_count == 0);
nxt_assert(process->registered == 0);
@ -1594,13 +1593,10 @@ nxt_runtime_process_destroy(nxt_runtime_t *rt, nxt_process_t *process)
nxt_port_mmaps_destroy(&process->incoming, 1);
nxt_port_mmaps_destroy(&process->outgoing, 1);
port = nxt_port_hash_first(&process->connected_ports, &lhe);
do {
port = nxt_port_hash_retrieve(&process->connected_ports);
while(port != NULL) {
nxt_port_hash_remove(&process->connected_ports, port);
port = nxt_port_hash_first(&process->connected_ports, &lhe);
}
} while (port != NULL);
nxt_thread_mutex_destroy(&process->incoming.mutex);
nxt_thread_mutex_destroy(&process->outgoing.mutex);