jesseduffield.lazygit/pkg/gui
Stefan Haller d274474c61 Band-aid fix for rare crashes when refreshing files
Users have filed issues with crash reports that seem to indicate that the
FileTreeViewModel gets swapped out (by a refresh) while a call to itemsSelected
is in progress, iterating over the previous items. Guard against this by locking
the mutex that we already have for this for the duration of the call.

I don't have a good way of testing whether the fix helps, because the crashes
only occurred very infrequently. Let's just see if the crash reports stop coming
in after we ship this.

Note also that this is only the minimal fix for the crashes that were reported.
Theoretically, the same problem could happen for a key handler itself, but we
never saw reports about that, so we don't bother doing anything about that yet.

Note also that long-term I envision a different solution to this class of
problems (discussed in https://github.com/jesseduffield/lazygit/issues/2974),
that's why I want to avoid locking mutexes more than necessary now.
2025-12-03 08:08:21 +01:00
..
context Refactor: add a separate Prompt view 2025-09-05 10:42:03 +02:00
controllers Band-aid fix for rare crashes when refreshing files 2025-12-03 08:08:21 +01:00
filetree When entering a commit in path filtering mode, select the filtered path 2025-10-09 09:58:15 +02:00
keybindings Make LabelFromKey return an empty string for unset keys 2025-07-27 12:25:16 +02:00
mergeconflicts Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
modes Make Commit.Hash a getter for an unexported hash field 2025-04-29 14:57:15 +02:00
patch_exploring Don't use hunk mode for added or deleted files 2025-07-27 12:10:25 +02:00
popup Strip leading/trailing whitespace from prompt input 2025-11-15 15:38:24 +01:00
presentation Modernize all codes 2025-11-15 10:46:23 +01:00
services/custom_commands Strip leading/trailing whitespace from prompt input 2025-11-15 15:38:24 +01:00
status Move Loader to presentation package 2025-05-06 09:52:53 +02:00
style Modernize all codes 2025-11-15 10:46:23 +01:00
types Strip leading/trailing whitespace from prompt input 2025-11-15 15:38:24 +01:00
background.go Trigger background fetch on repo switch only if enough time has passed since the last one 2025-11-16 17:32:37 +01:00
command_log_panel.go Add merge options menu 2025-10-09 08:45:58 +02:00
context.go Hide the cursor when the password prompt is showing 2025-09-20 11:11:46 +02:00
context_config.go Remove some unused code 2025-07-08 15:14:45 +02:00
controllers.go Trigger immediate background fetch when switching repos 2025-11-16 17:32:37 +01:00
dummies.go Move NewDummyCommon to pkg/common 2025-05-06 09:43:26 +02:00
editors.go Support Alt+Backspace for word deletion in text areas 2025-07-17 19:13:25 +02:00
extras_panel.go Add pageUp/pageDown/top/bottom keybindings to focused command log panel 2025-04-08 16:11:15 +02:00
global_handlers.go Refactor: add a separate Prompt view 2025-09-05 10:42:03 +02:00
gui.go Trigger background fetch on repo switch only if enough time has passed since the last one 2025-11-16 17:32:37 +01:00
gui_common.go Implement suspending the app using ctrl-z 2025-08-14 20:41:46 +02:00
gui_driver.go Fix clicking multiple times in an integration test 2024-10-18 10:06:52 +02:00
information_panel.go Rename ModeStatus.Description to InfoLabel 2025-08-14 17:59:38 +02:00
keybindings.go Refactor: add a separate Prompt view 2025-09-05 10:42:03 +02:00
layout.go Bump gocui and adapt lazygit code 2025-06-05 13:20:38 +02:00
main_panels.go Fix race with PTYs in integration tests 2025-03-28 11:16:04 +01:00
menu_panel.go Don't hide keybindings that match the confirmMenu key in the keybindings menu 2025-09-07 12:43:54 +02:00
options_map.go Avoid duplicate key bindings in options map 2025-08-14 17:59:38 +02:00
pty.go Use a PTY when using external diff command from git config 2025-11-01 09:33:52 +01:00
pty_windows.go Export a LAZYGIT_COLUMNS variable to "pty" tasks on Windows 2025-10-09 10:04:29 +02:00
recent_repos_panel.go Remove unused field gui.IsNewRepo 2024-12-01 10:44:26 +01:00
tasks_adapter.go Close a task's stdout pipe when we are done with it 2025-08-01 10:32:46 +02:00
test_mode.go Don't use "HEADLESS" environment variable for running tests 2025-11-28 12:06:42 +01:00
view_helpers.go Modernize all codes 2025-11-15 10:46:23 +01:00
views.go Refactor: add a separate Prompt view 2025-09-05 10:42:03 +02:00