orchard/internal/config/lock_windows.go

22 lines
311 B
Go

package config
import (
"github.com/gofrs/flock"
"os"
)
func (handle *Handle) Lock() (func(), error) {
lockPath := handle.configPath + ".lock"
lock := flock.New(lockPath)
if err := lock.Lock(); err != nil {
return nil, err
}
return func() {
_ = lock.Unlock()
_ = os.Remove(lockPath)
}, nil
}