You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
a23efbb463
We need support three distinct paths for destruction of ncsubprocs: (1) external call to ncsubproc_destroy() while the subprocess is running, (2) external call to ncsubproc_destroy() after the subprocess has terminated, and (3) internal call to ncsubproc_destroy() without any external call. To do this properly, we always waitid() on the subprocess in our ncsubproc thread, and do not cancel said thread. This guarantees that the subprocess has been reaped if the thread has exited. We throw a pidfd_send_signal() into the thread prior to the waitid(), because this is safe with pidfds. The thread reclaims no resources otherwise. ncsubproc_destroy(), instead, reclaims them, after joining the ncsubproc thread. It sends SIGKILL before the join, which is once again safe thanks to pidfds. Resolves #552. |
4 years ago | |
---|---|---|
.. | ||
cell.cpp | 4 years ago | |
channel.cpp | 5 years ago | |
direct.cpp | 4 years ago | |
egcpool.cpp | 4 years ago | |
fade.cpp | 4 years ago | |
fds.cpp | 4 years ago | |
fills.cpp | 4 years ago | |
input.cpp | 4 years ago | |
internal.cpp | 5 years ago | |
main.cpp | 4 years ago | |
main.h | 4 years ago | |
menu.cpp | 4 years ago | |
metric.cpp | 4 years ago | |
ncplane.cpp | 4 years ago | |
notcurses.cpp | 4 years ago | |
palette.cpp | 4 years ago | |
plot.cpp | 4 years ago | |
reel.cpp | 4 years ago | |
resize.cpp | 4 years ago | |
rotate.cpp | 4 years ago | |
scrolling.cpp | 4 years ago | |
selector.cpp | 4 years ago | |
visual.cpp | 4 years ago | |
wide.cpp | 4 years ago | |
zaxis.cpp | 4 years ago |