diff options
Diffstat (limited to 'core/restart_windows.go')
-rw-r--r-- | core/restart_windows.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/core/restart_windows.go b/core/restart_windows.go new file mode 100644 index 000000000..c2a4f557a --- /dev/null +++ b/core/restart_windows.go @@ -0,0 +1,31 @@ +package core + +import "log" + +// Restart restarts Caddy forcefully using newCaddyfile, +// or, if nil, the current/existing Caddyfile is reused. +func Restart(newCaddyfile Input) error { + log.Println("[INFO] Restarting") + + if newCaddyfile == nil { + caddyfileMu.Lock() + newCaddyfile = caddyfile + caddyfileMu.Unlock() + } + + wg.Add(1) // barrier so Wait() doesn't unblock + + err := Stop() + if err != nil { + return err + } + + err = Start(newCaddyfile) + if err != nil { + return err + } + + wg.Done() // take down our barrier + + return nil +} |