diff options
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/internal/dotlk')
3 files changed, 0 insertions, 92 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go b/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go deleted file mode 100644 index 3c8d782d7..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +++ /dev/null @@ -1,29 +0,0 @@ -package dotlk - -import ( - "errors" - "io/fs" - "os" -) - -// LockShm creates a directory on disk to prevent SQLite -// from using this path for a shared memory file. -func LockShm(name string) error { - err := os.Mkdir(name, 0777) - if errors.Is(err, fs.ErrExist) { - s, err := os.Lstat(name) - if err == nil && s.IsDir() { - return nil - } - } - return err -} - -// Unlock removes the lock or shared memory file. -func Unlock(name string) error { - err := os.Remove(name) - if errors.Is(err, fs.ErrNotExist) { - return nil - } - return err -} diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go b/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go deleted file mode 100644 index 5399a5f8a..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build !unix - -package dotlk - -import "os" - -// TryLock returns nil if it acquired the lock, -// fs.ErrExist if another process has the lock. -func TryLock(name string) error { - f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) - f.Close() - return err -} diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go b/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go deleted file mode 100644 index 177ab30bb..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +++ /dev/null @@ -1,50 +0,0 @@ -//go:build unix - -package dotlk - -import ( - "errors" - "io/fs" - "os" - "strconv" - - "golang.org/x/sys/unix" -) - -// TryLock returns nil if it acquired the lock, -// fs.ErrExist if another process has the lock. -func TryLock(name string) error { - for retry := true; retry; retry = false { - f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) - if err == nil { - f.WriteString(strconv.Itoa(os.Getpid())) - f.Close() - return nil - } - if !errors.Is(err, fs.ErrExist) { - return err - } - if !removeStale(name) { - break - } - } - return fs.ErrExist -} - -func removeStale(name string) bool { - buf, err := os.ReadFile(name) - if err != nil { - return errors.Is(err, fs.ErrNotExist) - } - - pid, err := strconv.Atoi(string(buf)) - if err != nil { - return false - } - if unix.Kill(pid, 0) == nil { - return false - } - - err = os.Remove(name) - return err == nil || errors.Is(err, fs.ErrNotExist) -} |