fish-shell/src
ridiculousfish a32248277f Make commandline state thread safe
Today the reader exposes its internals directly, e.g. to the commandline
builtin. This is of course not thread safe. For example in concurrent
execution, running `commandline` twice in separate threads would cause a
race and likely a crash.

Fix this by factoring all the commandline state into a new type
'commandline_state_t'. Make it a singleton (there is only one command
line
after all) and protect it with a lock.

No user visible change here.
2021-07-21 11:51:46 -07:00
..
widecharwidth Incorporate widecharwidth changes for narrow emoji 2020-08-04 12:40:46 -07:00
ast.cpp Make ast FLOGs slightly less chatty 2021-05-03 12:01:21 +02:00
ast.h Reformat 2020-11-22 14:39:48 +01:00
ast_node_types.inc Introduce a new fish ast 2020-07-04 14:58:02 -07:00
autoload.cpp Don't eagerly fetch the current time in autoloading 2020-08-08 15:30:04 -07:00
autoload.h Run clang-format on all files 2019-10-13 15:50:48 -07:00
builtin.cpp Properly report errors when builtin output fails 2021-04-03 16:11:25 -07:00
builtin.h Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
builtin_argparse.cpp Clean up of get_function_name 2021-07-15 11:36:43 -07:00
builtin_argparse.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_bg.cpp Introduce notion of "wait handles" 2021-05-15 20:20:50 -07:00
builtin_bg.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_bind.cpp Move builtin_bind to out-of-line 2021-05-25 17:39:55 -07:00
builtin_bind.h Move builtin_bind to out-of-line 2021-05-25 17:39:55 -07:00
builtin_block.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_block.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_builtin.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_builtin.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_cd.cpp Stop cd "" from crashing 2021-07-17 19:03:15 +02:00
builtin_cd.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_command.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_command.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_commandline.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
builtin_commandline.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_complete.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
builtin_complete.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_contains.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_contains.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_disown.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_disown.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_echo.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_echo.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_emit.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_emit.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_eval.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_eval.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_exit.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_exit.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_fg.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_fg.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_function.cpp Allow on-job-exit handlers to be added for any pid in the job 2021-05-25 15:28:53 -07:00
builtin_function.h Reformat 2020-11-22 14:39:48 +01:00
builtin_functions.cpp Separate on-job-exit and and on-process-exit events 2021-05-19 11:29:08 -07:00
builtin_functions.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_history.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
builtin_history.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_jobs.cpp Use internal job ids in builtin_wait 2021-05-13 12:11:00 -07:00
builtin_jobs.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_math.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_math.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_printf.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_printf.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_pwd.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_pwd.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_random.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_random.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_read.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
builtin_read.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_realpath.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_realpath.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_return.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_return.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_set.cpp Remove stale path validation logic 2021-07-03 08:45:47 +02:00
builtin_set.h Move builtin_bind to out-of-line 2021-05-25 17:39:55 -07:00
builtin_set_color.cpp set_color: Print an error for unknown options 2021-05-27 19:03:55 +02:00
builtin_set_color.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_source.cpp Remove some main thread assertions that are not helping 2021-07-15 10:49:27 -07:00
builtin_source.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_status.cpp Clean up of get_function_name 2021-07-15 11:36:43 -07:00
builtin_status.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_string.cpp string: Add "--groups-only" to match 2021-07-16 20:27:54 +02:00
builtin_string.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_test.cpp Make test error when number is invalid nicer 2021-04-24 11:18:58 +02:00
builtin_test.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_type.cpp Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
builtin_type.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_ulimit.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_ulimit.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
builtin_wait.cpp Refactor wait handles 2021-05-17 15:25:21 -07:00
builtin_wait.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
color.cpp Simplify ASSERT_SORT_ORDER 2021-07-15 13:15:24 -07:00
color.h Refactor color.h/color.cpp 2021-02-08 15:16:21 -06:00
common.cpp const_strlen to be aware of interior nul chars 2021-07-15 13:07:09 -07:00
common.h Simplify ASSERT_SORT_ORDER 2021-07-15 13:15:24 -07:00
complete.cpp Remove some main thread assertions that are not helping 2021-07-15 10:49:27 -07:00
complete.h Allow specifying a limit on number of expansion in operation_context 2020-12-22 12:38:51 -08:00
enum_set.h [cppcheck] add some std::move 2020-03-14 15:07:54 -07:00
env.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
env.h Clean up use_posix_spawn 2021-05-31 13:38:56 -07:00
env_dispatch.cpp Enable OSC 0 when running in WezTerm 2021-07-08 16:10:11 +02:00
env_dispatch.h Declare functions in headers or use internal linkage (static) 2020-09-08 22:44:03 +02:00
env_universal_common.cpp Do not flock the uvars file on remote filesystems 2021-05-10 15:24:32 -07:00
env_universal_common.h Mild refactoring of flock logic inside env_universal_t 2021-05-10 15:23:57 -07:00
event.cpp Fix incorrect comparison of function pointers 2021-06-28 18:06:04 -05:00
event.h Allow on-job-exit handlers to be added for any pid in the job 2021-05-25 15:28:53 -07:00
exec.cpp Remove some main thread assertions that are not helping 2021-07-15 10:49:27 -07:00
exec.h Move autoclose_pipes_t from io.h to fds.h 2021-02-05 17:58:08 -08:00
expand.cpp Support $(cmd) command substitution as alternative to (cmd) 2021-07-13 21:33:42 +02:00
expand.h Stop expanding globs in command position when performing error checking 2020-12-22 12:38:51 -08:00
fallback.cpp Declare functions in headers or use internal linkage (static) 2020-09-08 22:44:03 +02:00
fallback.h Remove lrand48 checks and support 2020-07-08 11:00:12 -07:00
fd_monitor.cpp Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
fd_monitor.h Introduce select_wrapper_t 2021-04-17 16:43:27 -07:00
fds.cpp Fix set_cloexec check 2021-05-22 18:09:15 +02:00
fds.h Remove fd_check_is_remote 2021-05-10 14:23:07 -07:00
fish.cpp Migrate remaining calls from debug_safe to FLOGF_SAFE 2021-07-05 15:47:56 -07:00
fish_indent.cpp Migrate remaining calls from debug_safe to FLOGF_SAFE 2021-07-05 15:47:56 -07:00
fish_key_reader.cpp Remove timeout input events 2021-04-17 16:43:28 -07:00
fish_test_helper.cpp Readd awkward unused-result dance 2021-05-18 09:44:29 +02:00
fish_tests.cpp Simplify ASSERT_SORT_ORDER 2021-07-15 13:15:24 -07:00
fish_version.cpp Reformat all files 2019-05-05 12:09:25 +02:00
fish_version.h Revert "Generate FISH_BUILD_VERSION info for cmake builds" 2018-01-08 22:28:10 -08:00
flog.cpp Migrate remaining calls from debug_safe to FLOGF_SAFE 2021-07-05 15:47:56 -07:00
flog.h Migrate remaining calls from debug_safe to FLOGF_SAFE 2021-07-05 15:47:56 -07:00
function.cpp Catch invalid function names in highlighting and autosuggestion 2021-06-22 12:37:45 -07:00
function.h Catch invalid function names in highlighting and autosuggestion 2021-06-22 12:37:45 -07:00
future_feature_flags.cpp feature flags: default stderr-nocaret to on 2021-04-12 22:18:48 +08:00
future_feature_flags.h feature flags: add the notion of a default value for each flag 2021-04-12 22:18:48 +08:00
global_safety.h Reformat 2020-11-22 14:39:48 +01:00
highlight.cpp Simplify slice parsing in highlighting 2021-07-14 13:59:48 -07:00
highlight.h Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
history.cpp Do not lock the history file on remote filesystems 2021-05-10 14:23:07 -07:00
history.h Fix some potential leaks in history file contents 2021-05-09 11:59:29 -07:00
history_file.cpp Do not lock the history file on remote filesystems 2021-05-10 14:23:07 -07:00
history_file.h Fix a unique_ptr build error with gcc 4.8 2021-05-10 16:49:11 -07:00
input.cpp Simplify ASSERT_SORT_ORDER 2021-07-15 13:15:24 -07:00
input.h Introduce prepare_to_select, fixing job_summary.py 2021-04-17 16:43:28 -07:00
input_common.cpp Complete revert of faulty polling workaround 2021-07-18 18:41:04 +02:00
input_common.h Introduce prepare_to_select, fixing job_summary.py 2021-04-17 16:43:28 -07:00
intern.cpp Declare functions in headers or use internal linkage (static) 2020-09-08 22:44:03 +02:00
intern.h restyle intern module to match project style 2016-05-01 20:28:46 -07:00
io.cpp Remove some more ASSERT_IS_MAIN_THREADs 2021-07-17 12:20:54 -07:00
io.h Fix a few mild warnings with gcc 4.8 2021-05-10 16:49:01 -07:00
iothread.cpp Remove some main thread assertions that are not helping 2021-07-15 10:49:27 -07:00
iothread.h Introduce select_wrapper_t 2021-04-17 16:43:27 -07:00
job_group.cpp Implement cancel groups 2020-09-03 11:01:27 -07:00
job_group.h Implement cancel groups 2020-09-03 11:01:27 -07:00
kill.cpp Make the kill ring thread-safe 2021-04-21 17:37:44 -07:00
kill.h Implementation of variable with killring entries 2021-04-21 16:39:29 -07:00
lru.h Use unordered_map instead of map in lru 2020-08-08 15:32:06 -07:00
maybe.h Fix a few mild warnings with gcc 4.8 2021-05-10 16:49:01 -07:00
null_terminated_array.cpp Rework null terminated arrays 2021-03-28 15:31:25 -07:00
null_terminated_array.h Rework null terminated arrays 2021-03-28 15:31:25 -07:00
operation_context.cpp Allow specifying a limit on number of expansion in operation_context 2020-12-22 12:38:51 -08:00
operation_context.h Expand more when performing history path detection 2021-01-08 12:58:34 -08:00
output.cpp output: Allow "--background foo" and "-b foo" for background colors 2021-06-10 10:42:30 +02:00
output.h Use wcs2string when outputting the screen 2021-02-17 15:38:46 -08:00
pager.cpp Revert "Attempt to simplify how completions get presented in the pager" 2020-12-04 16:44:48 +01:00
pager.h Revert "Attempt to simplify how completions get presented in the pager" 2020-12-04 16:44:48 +01:00
parse_constants.h Support $(cmd) command substitution as alternative to (cmd) 2021-07-13 21:33:42 +02:00
parse_execution.cpp Point to builtins begin/end when a failed command starts with "{" 2021-06-23 21:47:40 +02:00
parse_execution.h Revert "Prevent redirecting internal processes to file descriptors above 2" 2021-03-03 22:26:33 +01:00
parse_tree.cpp Output human-readable descriptions of some parse errors 2021-02-09 22:38:16 +01:00
parse_tree.h Reduce copying in parse_util_detect_errors 2020-07-12 16:57:30 -07:00
parse_util.cpp parse_util_locate_brackets_of_type to only find cmdsubs 2021-07-14 13:59:48 -07:00
parse_util.h Simplify slice parsing in highlighting 2021-07-14 13:59:48 -07:00
parser.cpp Clean up of get_function_name 2021-07-15 11:36:43 -07:00
parser.h Clean up of get_function_name 2021-07-15 11:36:43 -07:00
parser_keywords.cpp Add string to reserved keywords 2020-12-06 15:39:49 +01:00
parser_keywords.h Make IWYU output in lint.cpp less messy 2016-06-23 17:26:08 -07:00
path.cpp Do not flock the uvars file on remote filesystems 2021-05-10 15:24:32 -07:00
path.h Resolve relative paths in command names for complete -p 2021-05-16 21:52:38 +02:00
postfork.cpp Work around setpgid error on older Apple platforms 2021-07-20 17:27:10 +02:00
postfork.h FISH_USE_POSIX_SPAWN and HAVE_SPAWN_H fixes 2021-07-01 14:34:30 +02:00
print_help.cpp Run clang-format on all files 2019-10-13 15:50:48 -07:00
print_help.h restyle proc module to match project style 2016-05-02 22:07:58 -07:00
proc.cpp Allow on-job-exit handlers to be added for any pid in the job 2021-05-25 15:28:53 -07:00
proc.h Allow on-job-exit handlers to be added for any pid in the job 2021-05-25 15:28:53 -07:00
reader.cpp Make commandline state thread safe 2021-07-21 11:51:46 -07:00
reader.h Make commandline state thread safe 2021-07-21 11:51:46 -07:00
redirection.cpp Collapse io_data switch statements 2019-12-29 15:51:22 -08:00
redirection.h dup2_list_t::resolve_chain to stop returning maybe 2019-12-29 14:49:05 -08:00
sanity.cpp Change C casts to C++ ones 2020-05-01 13:30:56 -07:00
sanity.h Amend typos and grammar errors 2019-11-25 13:07:15 +01:00
screen.cpp screen: Remove errant line 2021-05-18 11:27:30 +02:00
screen.h Revert "Stop caching line breaks in the prompt calculation" 2020-11-12 10:55:11 -08:00
signal.cpp Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
signal.h Remove the SIGIO signal handler and universal notifier 2021-04-03 18:11:29 -07:00
termsize.cpp Include <termios.h> instead of <sys/termios.h>. 2021-03-02 12:05:07 +01:00
termsize.h Eliminate the termsize handling from common.h 2020-06-07 20:00:42 -07:00
timer.cpp Pass some parameters by reference/move 2021-03-21 19:41:36 +01:00
timer.h Pass some parameters by reference/move 2021-03-21 19:41:36 +01:00
tinyexpr.cpp Reformat source files with clang-format 2021-04-21 13:31:58 -07:00
tinyexpr.h math: Use wchar 2020-12-14 22:54:53 +01:00
tokenizer.cpp Support "$(cmd)" command substitution without line splitting 2021-07-13 21:33:42 +02:00
tokenizer.h Separate out variable assignments when completing 2020-09-26 17:30:25 -07:00
topic_monitor.cpp Introduce select_wrapper_t 2021-04-17 16:43:27 -07:00
topic_monitor.h Correct a stale comment 2020-08-24 12:12:10 -07:00
trace.cpp Change fish_trace prefix to "->" instead of plusses 2020-12-11 21:24:33 +01:00
trace.h Add support for fish_trace variable to trace execution 2019-11-02 14:40:57 -07:00
utf8.cpp Change C casts to C++ ones 2020-05-01 13:30:56 -07:00
utf8.h [clang-tidy] Fix inconsistent declarations 2019-11-25 14:13:33 -08:00
util.cpp [clang-tidy] numeric literals to uppercase 2020-04-05 10:13:13 +02:00
util.h Return glob ordering to pre-3.1 state 2020-02-14 19:06:19 +01:00
wait_handle.cpp Refactor wait handles 2021-05-17 15:25:21 -07:00
wait_handle.h Allow on-job-exit handlers to be added for any pid in the job 2021-05-25 15:28:53 -07:00
wcstringutil.cpp Remove wcstring_tok 2021-04-18 14:46:05 -07:00
wcstringutil.h Remove wcstring_tok 2021-04-18 14:46:05 -07:00
wgetopt.cpp Make arguments to builtins const 2021-03-28 15:31:25 -07:00
wgetopt.h Make arguments to builtins const 2021-03-28 15:31:25 -07:00
wildcard.cpp Allow ** glob segments to match zero directories 2020-12-28 23:51:18 -08:00
wildcard.h Clean up some comments around wildcard expansion 2020-12-28 23:51:18 -08:00
wutil.cpp Minor improvements to file_id_t 2021-06-13 17:20:04 -07:00
wutil.h Minor improvements to file_id_t 2021-06-13 17:20:04 -07:00