[PATCH 14/18] Removed nxt_always_inline from nxt_unit_process_release().

Alejandro Colomar alx.manpages at gmail.com
Thu Jun 2 18:05:08 UTC 2022


In various cases it's being called in error handling code (slow
path), where we shouldn't be inlining.

See usage:

$ grep -rnB5 nxt_unit_process_release
src/nxt_unit.c-118-static void nxt_unit_awake_ctx(nxt_unit_ctx_t *ctx,
src/nxt_unit.c-119-    nxt_unit_ctx_impl_t *ctx_impl);
src/nxt_unit.c-120-static void nxt_unit_mmaps_init(nxt_unit_mmaps_t *mmaps);
src/nxt_unit.c-121-nxt_always_inline static inline void nxt_unit_process_use(
src/nxt_unit.c-122-    nxt_unit_process_t *process);
src/nxt_unit.c:123:nxt_always_inline static inline void nxt_unit_process_release(
--
src/nxt_unit.c-4129-    nxt_atomic_fetch_add(&process->use_count, 1);
src/nxt_unit.c-4130-}
src/nxt_unit.c-4131-
src/nxt_unit.c-4132-
src/nxt_unit.c-4133-static inline void
src/nxt_unit.c:4134:nxt_unit_process_release(nxt_unit_process_t *process)
--
src/nxt_unit.c-5326-    new_port.out_fd = port_sockets[1];
src/nxt_unit.c-5327-    new_port.data = NULL;
src/nxt_unit.c-5328-
src/nxt_unit.c-5329-    pthread_mutex_unlock(&lib->mutex);
src/nxt_unit.c-5330-
src/nxt_unit.c:5331:    nxt_unit_process_release(process);
--
src/nxt_unit.c-5402-    if (c == 1) {
src/nxt_unit.c-5403-        nxt_unit_debug(NULL, "destroy port{%d,%d} in_fd %d out_fd %d",
src/nxt_unit.c-5404-                       (int) port->id.pid, (int) port->id.id,
src/nxt_unit.c-5405-                       port->in_fd, port->out_fd);
src/nxt_unit.c-5406-
src/nxt_unit.c:5407:        nxt_unit_process_release(port_impl->process);
--
src/nxt_unit.c-5587-unlock:
src/nxt_unit.c-5588-
src/nxt_unit.c-5589-    pthread_mutex_unlock(&lib->mutex);
src/nxt_unit.c-5590-
src/nxt_unit.c-5591-    if (nxt_slow_path(process != NULL)) {
src/nxt_unit.c:5592:        nxt_unit_process_release(process);
--
src/nxt_unit.c-5746-
src/nxt_unit.c-5747-        nxt_unit_port_release(&port->port);
src/nxt_unit.c-5748-
src/nxt_unit.c-5749-    } nxt_queue_loop;
src/nxt_unit.c-5750-
src/nxt_unit.c:5751:    nxt_unit_process_release(process);
---
 src/nxt_unit.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/nxt_unit.c b/src/nxt_unit.c
index cac913d..8b6a5b0 100644
--- a/src/nxt_unit.c
+++ b/src/nxt_unit.c
@@ -120,8 +120,7 @@ static void nxt_unit_awake_ctx(nxt_unit_ctx_t *ctx,
 static void nxt_unit_mmaps_init(nxt_unit_mmaps_t *mmaps);
 nxt_always_inline static inline void nxt_unit_process_use(
     nxt_unit_process_t *process);
-nxt_always_inline static inline void nxt_unit_process_release(
-    nxt_unit_process_t *process);
+static inline void nxt_unit_process_release(nxt_unit_process_t *process);
 static void nxt_unit_mmaps_destroy(nxt_unit_mmaps_t *mmaps);
 static int nxt_unit_check_rbuf_mmap(nxt_unit_ctx_t *ctx,
     nxt_unit_mmaps_t *mmaps, pid_t pid, uint32_t id,
-- 
2.36.1



More information about the unit mailing list