fish-shell/src
Mahmoud Al-Qudsi b54f1842d5 Switch to wait_by_process when waitpid without WNOHANG returns nothing
By exclusively waiting by pgrp, we can fail to reap processes that
change their own pgrp then either crash or close their fds. If we wind
up in a situation where `waitpid(2)` returns 0 or ECHLD even though we
did not specify `WNOHANG` but we still have unreaped child processes,
wait on them by pid.

Closes #5596.
2019-02-02 16:05:57 -06:00
..
widecharwidth Migrate to widechar_wcwidth 2018-07-09 20:31:16 -07:00
autoload.cpp Remove write-only assignments from autload.cpp 2019-01-16 15:46:11 -06:00
autoload.h Introduce class environment_t 2019-01-10 20:29:10 -08:00
builtin.cpp Fix warnings when compiling on macos 2019-01-17 13:56:17 -06:00
builtin.h Revert "Convert list of builtins from sorted array to unordered_set" 2018-09-29 00:22:24 -04:00
builtin_argparse.cpp Instantize contents of exec.cpp and others 2019-01-10 20:07:47 -08:00
builtin_argparse.h implement argparse builtin 2017-07-12 22:38:24 -07:00
builtin_bg.cpp Clean up job flags, status helpers, and instance helper methods 2018-10-27 18:01:38 -05:00
builtin_bg.h split builtin bg into its own module 2017-06-16 21:01:56 -07:00
builtin_bind.cpp Add separation of "preset" bindings 2018-09-30 16:54:56 +02:00
builtin_bind.h Add separation of "preset" bindings 2018-09-30 16:54:56 +02:00
builtin_block.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_block.h split builtin block into its own module 2017-06-16 21:01:56 -07:00
builtin_builtin.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_builtin.h split builtin builtin into its own module 2017-06-16 21:01:56 -07:00
builtin_cd.cpp Instantize env_get 2019-01-10 20:07:53 -08:00
builtin_cd.h split builtin cd into its own module 2017-06-16 21:01:56 -07:00
builtin_command.cpp Instantize env_get 2019-01-10 20:07:53 -08:00
builtin_command.h split builtin command into its own module 2017-06-16 21:01:56 -07:00
builtin_commandline.cpp Remove global variables from builtin_commandline 2018-10-01 09:34:58 -07:00
builtin_commandline.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_complete.cpp Begin to thread environments explicitly through completions 2019-01-10 20:29:10 -08:00
builtin_complete.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_contains.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_contains.h split builtin contains into its own module 2017-06-16 21:01:56 -07:00
builtin_disown.cpp Prevent zombie processes after disowned child procs exit 2018-11-18 15:27:58 -06:00
builtin_disown.h split builtin disown into its own module 2017-06-16 21:01:56 -07:00
builtin_echo.cpp Mark a null variable const in builtin_echo 2018-10-01 09:47:45 -07:00
builtin_echo.h split builtin echo into its own module 2017-06-16 21:01:56 -07:00
builtin_emit.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_emit.h split builtin emit into its own module 2017-06-16 21:01:56 -07:00
builtin_exit.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_exit.h split builtin exit into its own module 2017-06-16 21:01:56 -07:00
builtin_fg.cpp Instantize env_set 2019-01-10 20:05:45 -08:00
builtin_fg.h split builtin fg into its own module 2017-06-16 21:01:56 -07:00
builtin_function.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_function.h Functions to store nodes 2018-02-12 10:49:22 -08:00
builtin_functions.cpp functions -q: Return false without an argument 2019-02-01 18:34:45 +01:00
builtin_functions.h split builtin functions into its own module 2017-06-16 21:01:56 -07:00
builtin_history.cpp Switch some uses of env_get to instanced environment_t 2019-01-10 20:07:31 -08:00
builtin_history.h split builtin history into its own module 2017-06-16 21:01:56 -07:00
builtin_jobs.cpp Convert some old-school int booleans to bool 2018-12-31 00:46:31 -06:00
builtin_jobs.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_math.cpp math: Use simpler format string 2019-01-01 14:52:26 +01:00
builtin_math.h Implement bare minimum builtin math command 2017-08-23 14:43:45 -07:00
builtin_printf.cpp builtin_printf.cpp: remove is_hex_digit, redo is_octal_digit 2019-01-15 02:05:12 -08:00
builtin_printf.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_pwd.cpp Instantize env_get 2019-01-10 20:08:06 -08:00
builtin_pwd.h split builtin pwd into its own module 2017-06-16 21:01:56 -07:00
builtin_random.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_random.h split builtin random into its own module 2017-06-16 21:01:56 -07:00
builtin_read.cpp Clean up dead code in builtin_read.cpp 2019-01-16 15:44:10 -06:00
builtin_read.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_realpath.cpp Realpath styling tweaks. 2018-11-18 12:29:35 -08:00
builtin_realpath.h split builtin realpath into its own module 2017-06-16 21:01:56 -07:00
builtin_return.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_return.h split builtin return into its own module 2017-06-16 21:01:56 -07:00
builtin_set.cpp Remove dead assignment and clarify ENV_NOT_FOUND behavior for set -e 2019-01-16 15:27:23 -06:00
builtin_set.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_set_color.cpp set_color: don't set color to black before resetting attributes 2019-01-23 13:37:52 -08:00
builtin_set_color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_source.cpp Instance env_set_argv and env_set_pwd 2019-01-10 20:29:10 -08:00
builtin_source.h split builtin source into its own module 2017-06-16 21:01:56 -07:00
builtin_status.cpp Instantize env_get 2019-01-10 20:08:06 -08:00
builtin_status.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_string.cpp print --help to stdout like other builtins (#5495) 2019-01-09 15:07:09 -08:00
builtin_string.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_test.cpp Fix warnings when compiling on macos 2019-01-17 13:56:17 -06:00
builtin_test.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_ulimit.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_ulimit.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_wait.cpp Clean up job flags, status helpers, and instance helper methods 2018-10-27 18:01:38 -05:00
builtin_wait.h add wait command 2017-11-16 10:48:21 -08:00
color.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
common.cpp Fix some compile warnings 2019-01-10 20:59:47 -08:00
common.h Use standard __CYGWIN__ define for Cygwin detection 2019-01-21 20:06:16 -06:00
complete.cpp Fix warnings when compiling on macos 2019-01-17 13:56:17 -06:00
complete.h Eliminate complete_set_variable_names 2019-01-10 20:29:10 -08:00
enum_set.h Clean up job flags, status helpers, and instance helper methods 2018-10-27 18:01:38 -05:00
env.cpp env.cpp: swap entries of fallback PATH 2019-01-28 19:28:02 -08:00
env.h Also set the read-only flag for non-electric vars 2019-01-18 19:27:41 +01:00
env_universal_common.cpp Revert "Show how fish was executed, using argv[0] for program_name" 2018-11-28 06:08:24 -08:00
env_universal_common.h Remove fish_mutex_t wrapper around std::mutex 2018-12-30 20:37:36 -06:00
event.cpp Clean up job flags, status helpers, and instance helper methods 2018-10-27 18:01:38 -05:00
event.h Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
exec.cpp Clean up the io_chain_t interface 2019-01-31 18:49:52 -08:00
exec.h Instantize contents of exec.cpp and others 2019-01-10 20:07:47 -08:00
expand.cpp Fix warnings when compiling on macos 2019-01-17 13:56:17 -06:00
expand.h Correct highlighting of abbreviations 2019-01-11 20:43:52 -08:00
fallback.cpp Use wcstod_l on NetBSD 2019-01-20 18:35:38 +01:00
fallback.h Use wcstod_l on NetBSD 2019-01-20 18:35:38 +01:00
fish.cpp Instantize env_get 2019-01-10 20:07:53 -08:00
fish_indent.cpp Eliminate env_snapshot_t::current() 2019-01-10 20:07:14 -08:00
fish_key_reader.cpp Revert "Show how fish was executed, using argv[0] for program_name" 2018-11-28 06:08:24 -08:00
fish_tests.cpp Clean up the io_chain_t interface 2019-01-31 18:49:52 -08:00
fish_version.cpp Eliminate some mutable global variables 2018-09-29 00:20:50 -04:00
fish_version.h Revert "Generate FISH_BUILD_VERSION info for cmake builds" 2018-01-08 22:28:10 -08:00
function.cpp src/function.cpp: Fix possible NULL-dereference 2019-01-31 16:02:02 +01:00
function.h Instance env_set_argv and env_set_pwd 2019-01-10 20:29:10 -08:00
future_feature_flags.cpp Add a qmark-noglob feature flag 2018-05-06 11:20:15 -07:00
future_feature_flags.h Add a feature_test() function 2018-05-06 11:20:15 -07:00
highlight.cpp Enable configuring more pager colors 2019-01-26 15:43:23 -08:00
highlight.h Enable configuring more pager colors 2019-01-26 15:43:23 -08:00
history.cpp Switch some uses of env_get to instanced environment_t 2019-01-10 20:07:31 -08:00
history.h Switch some uses of env_get to instanced environment_t 2019-01-10 20:07:31 -08:00
input.cpp Quit immediately with R_EOF 2019-01-28 18:12:48 +01:00
input.h Instantize env_set 2019-01-10 20:05:45 -08:00
input_common.cpp Instantize env_set in env.h and env.cpp 2019-01-10 20:07:23 -08:00
input_common.h Instantize env_set in env.h and env.cpp 2019-01-10 20:07:23 -08:00
intern.cpp Cleap up owning_lock interface 2018-09-01 13:11:42 -07:00
intern.h restyle intern module to match project style 2016-05-01 20:28:46 -07:00
io.cpp Clean up the io_chain_t interface 2019-01-31 18:49:52 -08:00
io.h Clean up the io_chain_t interface 2019-01-31 18:49:52 -08:00
iothread.cpp Remove fish_mutex_t wrapper around std::mutex 2018-12-30 20:37:36 -06:00
iothread.h lint cleanups 2017-02-11 21:30:38 -08:00
kill.cpp Make contains() more general 2018-08-11 22:23:20 -07:00
kill.h restyle kill module to match project style 2016-05-01 22:18:59 -07:00
lru.h Added const to methods which 'ought to be const' based on Const Checker 2018-08-09 19:05:47 -07:00
maybe.h Instantize env_set 2019-01-10 20:05:45 -08:00
output.cpp Instantize env_get 2019-01-10 20:07:53 -08:00
output.h Make a few methods const 2018-12-31 14:24:23 +01:00
pager.cpp Enable configuring more pager colors 2019-01-26 15:43:23 -08:00
pager.h implement our own assert() function 2017-02-14 18:48:27 -08:00
parse_constants.h Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
parse_execution.cpp Make while loops evaluate to the last executed command status 2019-01-20 16:37:20 -08:00
parse_execution.h Teach each job about its parent 2018-11-04 01:40:07 -08:00
parse_grammar.h Fix warning about extra ';' being ignored 2018-06-18 00:05:31 -05:00
parse_grammar_elements.inc Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
parse_productions.cpp Bring some consistency and rationale to debug log levels 2018-10-27 18:01:38 -05:00
parse_productions.h style cleanups 2017-05-01 22:05:35 -07:00
parse_tree.cpp Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
parse_tree.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_util.cpp Instantize env_get_pwd_slash 2019-01-10 20:01:28 -08:00
parse_util.h Teach parse_util_escape_string_with_quote about tildes 2018-02-17 15:18:43 -08:00
parser.cpp Instantize contents of exec.cpp and others 2019-01-10 20:07:47 -08:00
parser.h Instantize contents of exec.cpp and others 2019-01-10 20:07:47 -08:00
parser_keywords.cpp parser_keywords: Pre-create "begin" and "else" wcstrings 2018-12-01 23:03:41 +01:00
parser_keywords.h Make IWYU output in lint.cpp less messy 2016-06-23 17:26:08 -07:00
path.cpp Instantize env_get 2019-01-10 20:07:53 -08:00
path.h Instantize env_get 2019-01-10 20:07:53 -08:00
postfork.cpp Switch io_mode to an enum class 2019-01-31 12:12:46 -08:00
postfork.h Minor cleanup and const correctness 2018-08-04 16:45:16 -07:00
print_help.cpp lint: "collapsible if statements" warnings 2016-10-22 19:09:40 -07:00
print_help.h restyle proc module to match project style 2016-05-02 22:07:58 -07:00
proc.cpp Switch to wait_by_process when waitpid without WNOHANG returns nothing 2019-02-02 16:05:57 -06:00
proc.h Remove pipe_read_fd 2019-01-31 17:58:59 -08:00
reader.cpp Make control-S begin navigating the pager contents 2019-01-22 14:41:13 -08:00
reader.h Instantize env_get 2019-01-10 20:08:06 -08:00
sanity.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.h improve sanity check code 2017-01-24 15:24:13 -08:00
screen.cpp Instantize env_get 2019-01-10 20:08:06 -08:00
screen.h Don't reset the screen after emitting a BEL 2018-09-16 16:25:49 -07:00
signal.cpp Allow SIGINT in non-interactive mode 2018-10-12 23:58:14 -07:00
signal.h Add RAII wrapper for signal_block/signal_unblock 2018-10-27 18:01:38 -05:00
tinyexpr.cpp tinyexpr: use math.h constants, constexpr 2019-01-25 17:08:15 -08:00
tinyexpr.h [tinyexpr] Port to C++ 2018-12-30 19:34:06 +01:00
tnode.cpp Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tnode.h Fix crash when nodeptr is null and node->get_source() is called 2018-09-26 21:03:55 -05:00
tokenizer.cpp Allow nested square brackets again 2018-11-22 17:57:27 -08:00
tokenizer.h Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
utf8.cpp implement our own assert() function 2017-02-14 18:48:27 -08:00
utf8.h implement our own assert() function 2017-02-14 18:48:27 -08:00
util.cpp Fix the build on FreeBSD with Clang 2017-06-17 22:51:25 -07:00
util.h restyle remaining modules to match project style 2016-05-03 16:09:45 -07:00
wcstringutil.cpp fixup! Add overload of wcstringutil::trim that automatically trims whitespace 2018-10-01 17:22:40 -05:00
wcstringutil.h Add overload of wcstringutil::trim that automatically trims whitespace 2018-10-01 17:12:18 -05:00
wgetopt.cpp Remove some compatibility juk from wgetopt 2018-08-18 17:22:55 -07:00
wgetopt.h Clean up bits of wgetopter_t interface 2018-08-25 16:09:04 -07:00
wildcard.cpp Pass the original string into wildcard's decsription function 2018-11-11 14:15:45 -08:00
wildcard.h Simplify wildcard_complete prototype 2018-10-16 15:43:42 -07:00
wutil.cpp Switch to readdir from readdir_r 2019-01-03 11:19:45 +01:00
wutil.h Fix locale_t under macOS 10.10 2019-01-10 20:03:38 -06:00