From 6e0fd72e3353d35c1afb2288c6220608e2e21bb6 Mon Sep 17 00:00:00 2001 From: nick black Date: Sat, 2 May 2020 03:33:30 -0400 Subject: [PATCH] proc/fileroller: don't call ncfdplane_destroy() from within callbacks --- src/poc/fileroller.c | 5 ++--- src/poc/procroller.c | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/poc/fileroller.c b/src/poc/fileroller.c index 907a0ef35..333d55b97 100644 --- a/src/poc/fileroller.c +++ b/src/poc/fileroller.c @@ -31,7 +31,7 @@ eofcb(struct ncfdplane* ncfd, int nerrno, void* curry){ fddone = true; pthread_mutex_unlock(&lock); pthread_cond_signal(&cond); - return ncfdplane_destroy(ncfd); + return nerrno; } int main(int argc, char** argv){ @@ -40,7 +40,6 @@ int main(int argc, char** argv){ opts.inhibit_alternate_screen = true; struct notcurses* nc = notcurses_init(&opts, stdout); struct ncplane* n = notcurses_stdplane(nc); - int ret = -1; while(*++argv){ int fd = open(*argv, O_RDONLY|O_CLOEXEC); if(fd < 0){ @@ -59,7 +58,7 @@ int main(int argc, char** argv){ } done: - if(notcurses_stop(nc) || ret){ + if(notcurses_stop(nc)){ return EXIT_FAILURE; } return EXIT_SUCCESS; diff --git a/src/poc/procroller.c b/src/poc/procroller.c index e2e8885cf..f37ac9729 100644 --- a/src/poc/procroller.c +++ b/src/poc/procroller.c @@ -31,7 +31,7 @@ eofcb(struct ncfdplane* ncfd, int nerrno, void* curry){ fddone = true; pthread_mutex_unlock(&lock); pthread_cond_signal(&cond); - return ncfdplane_destroy(ncfd); + return nerrno; } int main(int argc, char** argv){ @@ -47,17 +47,15 @@ int main(int argc, char** argv){ return EXIT_FAILURE; } struct ncplane* n = notcurses_stdplane(nc); - int ret = -1; ncsubproc_options nopts = {}; struct ncsubproc* nsproc = ncsubproc_createvp(n, &nopts, *argv, argv, cb, eofcb); pthread_mutex_lock(&lock); while(!fddone){ pthread_cond_wait(&cond, &lock); } - ret = 0; pthread_mutex_unlock(&lock); ncsubproc_destroy(nsproc); - if(notcurses_stop(nc) || ret){ + if(notcurses_stop(nc)){ return EXIT_FAILURE; } return EXIT_SUCCESS;