fish-shell/src
Johannes Altmanninger 2fa98ec20c Fix deadlock when importing universal LC_* variable
The C++ version of this code simply copied the entire uvar table.
Today we take a reference. It's not clear which one is better.

Removal of locale variables like LC_ALL triggers variable change handlers
which call EnvStackImpl::get. This deadlocks because we still hold the lock
to protect the reference to all uvars.  Work around this.

Closes #10513
2024-05-21 23:11:06 +02:00
..
bin Remove Arc from environment::globals() (take 2) 2024-05-16 21:17:15 -05:00
builtins Remove wcstringutil::split_string() 2024-05-21 12:54:52 -05:00
env Fix deadlock when importing universal LC_* variable 2024-05-21 23:11:06 +02:00
fork_exec Remove using statements already imported by preludes 2024-02-28 09:41:51 -06:00
history Inline extract_prefix_and_unescape_yaml() 2024-05-17 16:11:46 -05:00
tests Extend certain WSL workarounds to WSLv2 2024-05-20 14:14:25 -05:00
universal_notifier Move from libc read/write to nix read/write 2024-01-21 11:49:40 -08:00
widecharwidth Move fish-rust to project root 2024-01-13 03:58:33 +01:00
wutil Rework path_normalize_for_cd() to be less allocation trigger happy 2024-05-21 12:54:52 -05:00
abbrs.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
ast.rs tokenizer: Stop copying the start string 2024-05-07 16:59:35 +02:00
autoload.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
color.rs Convert colors::Flags to a bitflags enum 2024-05-07 14:03:38 -05:00
common.rs Extend certain WSL workarounds to WSLv2 2024-05-20 14:14:25 -05:00
complete.rs Remove Arc from environment::globals() (take 2) 2024-05-16 21:17:15 -05:00
curses.rs curses: Remove f13-f20 2024-04-02 21:33:54 +02:00
editable_line.rs Keep undo history across prompts 2024-04-29 09:20:09 +02:00
env_dispatch.rs Set terminal title unconditionally 2024-04-02 14:35:16 +02:00
env_universal_common.rs Remove wcstringutil::split_string() 2024-05-21 12:54:52 -05:00
event.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
exec.rs Work around wants_terminal not begin set inside eval 2024-05-18 20:55:06 +02:00
expand.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fallback.rs Use File instead of OwnedFd in a few places (#10355) 2024-03-17 11:20:44 -05:00
fd_monitor.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fd_readable_set.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fds.rs Clean up and correct O_SEARCH definitions 2024-05-11 13:20:34 -07:00
fish_test_helper.cpp test_helper: Give self-signalling a chance to trigger 2024-03-19 16:41:25 +01:00
flog.rs Replace C++-style \p with Markdown backticks 2024-05-06 14:59:23 -05:00
function.rs Remove Arc from environment::globals() (take 2) 2024-05-16 21:17:15 -05:00
future.rs Remove backports for 1.67 2024-04-29 22:00:59 +02:00
future_feature_flags.rs Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
global_safety.rs Simplify shared-from-this pattern 2024-03-09 10:09:03 +01:00
highlight.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
history.rs Make history::remove take a &wstr instead of a WString 2024-04-15 09:47:46 -07:00
input.rs input: Remove all_mappings_cache 2024-05-14 16:14:02 +02:00
input_common.rs Extend certain WSL workarounds to WSLv2 2024-05-20 14:14:25 -05:00
io.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
job_group.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
key.rs Match stdlib strip_prefix return value 2024-04-20 13:34:08 +02:00
kill.rs Remove L! from sprintf calls 2024-01-13 08:52:54 +01:00
lib.rs Extended & human-friendly keys 2024-04-02 14:35:16 +02:00
libc.c Switch to the terminfo crate 2024-02-22 20:10:16 +01:00
libc.rs Clean up src/libc.rs some 2024-05-08 22:34:10 -05:00
locale.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
nix.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
null_terminated_array.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
operation_context.rs Remove Arc from environment::globals() (take 2) 2024-05-16 21:17:15 -05:00
output.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
pager.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
panic.rs Print panic message to stderr, like the stack trace 2024-04-02 07:34:19 +02:00
parse_constants.rs Rename FISH_TSAN_WORKAROUNDS and add feature to Cargo.toml 2024-05-09 13:58:42 -05:00
parse_execution.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parse_tree.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parse_util.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parser.rs Revert removal of Arc from principal() and global() 2024-05-16 21:08:06 -05:00
parser_keywords.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
path.rs Extend certain WSL workarounds to WSLv2 2024-05-20 14:14:25 -05:00
pointer.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
print_help.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
proc.rs Work around wants_terminal not begin set inside eval 2024-05-18 20:55:06 +02:00
re.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
reader.rs Toggle terminal protocols lazily 2024-05-16 12:26:47 +02:00
reader_history_search.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
redirection.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
screen.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
signal.rs Toggle terminal protocols lazily 2024-05-16 12:26:47 +02:00
termsize.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
threads.rs Address clippy lints 2024-03-09 13:49:25 +01:00
timer.rs Check for unsupported "time &" in the proper place 2024-05-03 09:37:56 +02:00
tinyexpr.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
tokenizer.rs Fix some clippies 2024-05-12 14:55:35 -07:00
topic_monitor.rs Rename FISH_TSAN_WORKAROUNDS and add feature to Cargo.toml 2024-05-09 13:58:42 -05:00
trace.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
util.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
wait_handle.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
wchar.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
wchar_ext.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
wcstringutil.rs Remove wcstringutil::split_string() 2024-05-21 12:54:52 -05:00
wgetopt.rs Reimplement WGetopter::exchange() using rotate_left 2024-04-17 12:41:16 -07:00
wildcard.rs Extend certain WSL workarounds to WSLv2 2024-05-20 14:14:25 -05:00