.github
chore(deps): bump the github-actions group with 2 updates (#158).gitignore
Initial commit.golangci.yml
chore: update linter (#154)build.sh
feat: use runtime errors instead of compilation errors for unusupported platforms (#85)flock_example_test.go
chore: update linterflock_internal_test.go
chore: update linterflock_others.go
chore: update linterflock_test.go
chore: update linterflock_unix_fcntl.go
chore: update linterflock_unix.go
chore: update linterflock_windows.go
chore: update linterflock.go
chore: update lintergo.mod
chore(deps): bump golang.org/x/sys from 0.47.0 to 0.48.0 in the gomod group (#157)go.sum
chore(deps): bump golang.org/x/sys from 0.47.0 to 0.48.0 in the gomod group (#157)LICENSE
chore: fix licenseMakefile
chore: add MakefileREADME.md
chore: change default branchSECURITY.md
docs: improve security policies (#71)zizmor.yml
chore: improve workflows (#142)flock
flock implements a thread-safe file lock.
It also includes a non-blocking TryLock() function to allow locking without blocking execution.
Installation
go get -u github.com/gofrs/flockUsage
import "github.com/gofrs/flock"
fileLock := flock.New("/var/lock/go-lock.lock")
locked, err := fileLock.TryLock()
if err != nil {
// handle locking error
}
if locked {
// do work
fileLock.Unlock()
}For more detailed usage information take a look at the package API docs on GoDoc.
License
flock is released under the BSD 3-Clause License. See the LICENSE file for more details.
Project History
This project was originally github.com/theckman/go-flock, it was transferred to Gofrs by the original author Tim Heckman .