summaryrefslogtreecommitdiff
path: root/vendor/github.com/sevlyar/go-daemon/lock_file_unix.go
blob: 4215a8ce515200eaaa1b196e38bb542d6e4a6cb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// +build darwin dragonfly freebsd linux netbsd openbsd plan9

package daemon

import (
	"syscall"
)

func lockFile(fd uintptr) error {
	err := syscall.Flock(int(fd), syscall.LOCK_EX|syscall.LOCK_NB)
	if err == syscall.EWOULDBLOCK {
		err = ErrWouldBlock
	}
	return err
}

func unlockFile(fd uintptr) error {
	err := syscall.Flock(int(fd), syscall.LOCK_UN)
	if err == syscall.EWOULDBLOCK {
		err = ErrWouldBlock
	}
	return err
}