// +build !windows package clistate import ( "io" "syscall" ) // use fcntl POSIX locks for the most consistent behavior across platforms, and // hopefully some campatibility over NFS and CIFS. func (s *LocalState) lock() error { flock := &syscall.Flock_t{ Type: syscall.F_RDLCK | syscall.F_WRLCK, Whence: int16(io.SeekStart), Start: 0, Len: 0, } fd := s.stateFileOut.Fd() return syscall.FcntlFlock(fd, syscall.F_SETLK, flock) } func (s *LocalState) unlock() error { flock := &syscall.Flock_t{ Type: syscall.F_UNLCK, Whence: int16(io.SeekStart), Start: 0, Len: 0, } fd := s.stateFileOut.Fd() return syscall.FcntlFlock(fd, syscall.F_SETLK, flock) }