From c0f423496ea7b0d149bb64324e6590049e97d561 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sat, 1 Feb 2020 19:28:59 +0530 Subject: [PATCH] Use _exit() to terminate children The NNN_PIPE file gets deleted after spawning a child in NOWAIT mode. Steps: - open `nnn` with option `-x` - press `;o` (custom binding) to open fzopen plugin - press `^J` to select a file; it will spawn plugin `.cbcp` in NOWAIT mode - when the intermediate child quits, the NNN_PIPE of parent is also deleted --- src/nnn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index a98237be..133660d2 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -1302,7 +1302,7 @@ static pid_t xfork(uchar flag) p = fork(); if (p > 0) - exit(0); + _exit(0); else if (p == 0) { signal(SIGHUP, SIG_DFL); signal(SIGINT, SIG_DFL); @@ -1314,7 +1314,7 @@ static pid_t xfork(uchar flag) } perror("fork"); - exit(0); + _exit(0); } /* so they can be used to stop the child */