1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-03 00:57:52 +02:00

Instantiate Mutexes's fields by value

Instead, pass the entire Mutexes struct by pointer to controllers.

This is better because Mutexes now has a zero value and doesn't need to be
initialized.
This commit is contained in:
Stefan Haller
2025-06-09 16:21:10 +02:00
parent 4c92ffda60
commit 5ee5d42511
3 changed files with 12 additions and 25 deletions

View File

@ -681,17 +681,6 @@ func NewGui(
// real value after loading the user config:
ShowExtrasWindow: true,
Mutexes: types.Mutexes{
RefreshingFilesMutex: &deadlock.Mutex{},
RefreshingBranchesMutex: &deadlock.Mutex{},
RefreshingStatusMutex: &deadlock.Mutex{},
LocalCommitsMutex: &deadlock.Mutex{},
SubCommitsMutex: &deadlock.Mutex{},
AuthorsMutex: &deadlock.Mutex{},
SubprocessMutex: &deadlock.Mutex{},
PopupMutex: &deadlock.Mutex{},
PtyMutex: &deadlock.Mutex{},
},
InitialDir: initialDir,
afterLayoutFuncs: make(chan func() error, 1000),

View File

@ -100,8 +100,8 @@ func (self *guiCommon) Model() *types.Model {
return self.gui.State.Model
}
func (self *guiCommon) Mutexes() types.Mutexes {
return self.gui.Mutexes
func (self *guiCommon) Mutexes() *types.Mutexes {
return &self.gui.Mutexes
}
func (self *guiCommon) GocuiGui() *gocui.Gui {

View File

@ -94,7 +94,7 @@ type IGuiCommon interface {
Modes() *Modes
Mutexes() Mutexes
Mutexes() *Mutexes
State() IStateAccessor
@ -313,18 +313,16 @@ type Model struct {
HashPool *utils.StringPool
}
// if you add a new mutex here be sure to instantiate it. We're using pointers to
// mutexes so that we can pass the mutexes to controllers.
type Mutexes struct {
RefreshingFilesMutex *deadlock.Mutex
RefreshingBranchesMutex *deadlock.Mutex
RefreshingStatusMutex *deadlock.Mutex
LocalCommitsMutex *deadlock.Mutex
SubCommitsMutex *deadlock.Mutex
AuthorsMutex *deadlock.Mutex
SubprocessMutex *deadlock.Mutex
PopupMutex *deadlock.Mutex
PtyMutex *deadlock.Mutex
RefreshingFilesMutex deadlock.Mutex
RefreshingBranchesMutex deadlock.Mutex
RefreshingStatusMutex deadlock.Mutex
LocalCommitsMutex deadlock.Mutex
SubCommitsMutex deadlock.Mutex
AuthorsMutex deadlock.Mutex
SubprocessMutex deadlock.Mutex
PopupMutex deadlock.Mutex
PtyMutex deadlock.Mutex
}
// A long-running operation associated with an item. For example, we'll show