flock implements a thread-safe file lock.
It also includes a non-blocking TryLock() function to allow locking without blocking execution.
go get -u github.com/gofrs/flock
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.
flock is released under the BSD 3-Clause License. See the LICENSE file for more details.
This project was originally github.com/theckman/go-flock, it was transferred to Gofrs by the original author Tim Heckman .