URI: 
       commands: Fix server deadlock on config error - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit a2a660ed1209528b075a21af84fc0ed3e7b266ef
   DIR parent f7bc4cc505950df738ab11aa3c611f324dd6c158
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Thu, 10 Feb 2022 17:12:02 +0100
       
       commands: Fix server deadlock on config error
       
       Fixes #9486
       
       Diffstat:
         M commands/commandeer.go              |       6 ++++++
         M commands/hugo.go                    |       2 +-
       
       2 files changed, 7 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/commands/commandeer.go b/commands/commandeer.go
       @@ -61,6 +61,8 @@ type commandeer struct {
                logger       loggers.Logger
                serverConfig *config.Server
        
       +        buildLock func() (unlock func(), err error)
       +
                // Loading state
                mustHaveConfigFile bool
                failOnInitErr      bool
       @@ -419,6 +421,10 @@ func (c *commandeer) loadConfig() error {
                                err = createErr
                        }
                        c.hugoSites = h
       +                // TODO(bep) improve.
       +                if c.buildLock == nil {
       +                        c.buildLock = h.LockBuild
       +                }
                        close(c.created)
                })
        
   DIR diff --git a/commands/hugo.go b/commands/hugo.go
       @@ -869,7 +869,7 @@ func (c *commandeer) newWatcher(pollIntervalStr string, dirList ...string) (*wat
                        for {
                                select {
                                case evs := <-watcher.Events:
       -                                unlock, err := c.hugo().BaseFs.LockBuild()
       +                                unlock, err := c.buildLock()
                                        if err != nil {
                                                c.logger.Errorln("Failed to acquire a build lock: %s", err)
                                                return