Wait for child on plugin invocation

This commit is contained in:
KlzXS 2021-05-12 08:50:24 +02:00
parent 907616a058
commit 56d3f2d976
No known key found for this signature in database
GPG Key ID: FF9B81B098D5BACA
1 changed files with 6 additions and 1 deletions

View File

@ -4785,6 +4785,8 @@ static void readpipe(int fd, char **path, char **lastname, char **lastdir)
static bool run_selected_plugin(char **path, const char *file, char *runfile, char **lastname, char **lastdir)
{
int status;
pid_t p;
bool cmd_as_plugin = FALSE;
uchar_t flags = 0;
@ -4821,7 +4823,7 @@ static bool run_selected_plugin(char **path, const char *file, char *runfile, ch
exitcurses();
if (fork() == 0) { // In child
if ((p = fork()) == 0) { // In child
int wfd = open(g_pipepath, O_WRONLY | O_CLOEXEC);
if (wfd == -1)
@ -4852,6 +4854,9 @@ static bool run_selected_plugin(char **path, const char *file, char *runfile, ch
readpipe(rfd, path, lastname, lastdir);
close(rfd);
/* wait for the child to finish. no zombies allowed */
waitpid(p, &status, 0);
refresh();
unlink(g_pipepath);