Return error codes for port_hash operations.
This commit is contained in:
@@ -63,9 +63,10 @@ nxt_port_hash_lhq(nxt_lvlhsh_query_t *lhq, nxt_pid_port_id_t *pid_port)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
nxt_int_t
|
||||
nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port)
|
||||
{
|
||||
nxt_int_t res;
|
||||
nxt_pid_port_id_t pid_port;
|
||||
nxt_lvlhsh_query_t lhq;
|
||||
|
||||
@@ -76,7 +77,9 @@ nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port)
|
||||
lhq.replace = 0;
|
||||
lhq.value = port;
|
||||
|
||||
switch (nxt_lvlhsh_insert(port_hash, &lhq)) {
|
||||
res = nxt_lvlhsh_insert(port_hash, &lhq);
|
||||
|
||||
switch (res) {
|
||||
|
||||
case NXT_OK:
|
||||
break;
|
||||
@@ -86,12 +89,15 @@ nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port)
|
||||
port->id, port->pid);
|
||||
break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
nxt_int_t
|
||||
nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_port_t *port)
|
||||
{
|
||||
nxt_int_t res;
|
||||
nxt_pid_port_id_t pid_port;
|
||||
nxt_lvlhsh_query_t lhq;
|
||||
|
||||
@@ -100,14 +106,20 @@ nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_port_t *port)
|
||||
|
||||
nxt_port_hash_lhq(&lhq, &pid_port);
|
||||
|
||||
switch (nxt_lvlhsh_delete(port_hash, &lhq)) {
|
||||
res = nxt_lvlhsh_delete(port_hash, &lhq);
|
||||
|
||||
switch (res) {
|
||||
|
||||
case NXT_OK:
|
||||
break;
|
||||
|
||||
default:
|
||||
nxt_thread_log_error(NXT_LOG_WARN, "port #%d for pid %PI remove failed",
|
||||
port->id, port->pid);
|
||||
break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
#include <nxt_main.h>
|
||||
|
||||
|
||||
void nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
|
||||
nxt_int_t nxt_port_hash_add(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
|
||||
|
||||
void nxt_port_hash_remove(nxt_lvlhsh_t *port_hash, nxt_port_t *port);
|
||||
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);
|
||||
|
||||
@@ -1859,11 +1859,16 @@ nxt_runtime_port_first(nxt_runtime_t *rt, nxt_lvlhsh_each_t *lhe)
|
||||
void
|
||||
nxt_runtime_port_add(nxt_task_t *task, nxt_port_t *port)
|
||||
{
|
||||
nxt_int_t res;
|
||||
nxt_runtime_t *rt;
|
||||
|
||||
rt = task->thread->runtime;
|
||||
|
||||
nxt_port_hash_add(&rt->ports, port);
|
||||
res = nxt_port_hash_add(&rt->ports, port);
|
||||
|
||||
if (res != NXT_OK) {
|
||||
return;
|
||||
}
|
||||
|
||||
rt->port_by_type[port->type] = port;
|
||||
|
||||
@@ -1874,11 +1879,16 @@ nxt_runtime_port_add(nxt_task_t *task, nxt_port_t *port)
|
||||
void
|
||||
nxt_runtime_port_remove(nxt_task_t *task, nxt_port_t *port)
|
||||
{
|
||||
nxt_int_t res;
|
||||
nxt_runtime_t *rt;
|
||||
|
||||
rt = task->thread->runtime;
|
||||
|
||||
nxt_port_hash_remove(&rt->ports, port);
|
||||
res = nxt_port_hash_remove(&rt->ports, port);
|
||||
|
||||
if (res != NXT_OK) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (rt->port_by_type[port->type] == port) {
|
||||
rt->port_by_type[port->type] = NULL;
|
||||
|
||||
Reference in New Issue
Block a user