Thread-safe file locking library in Go (originally
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


TravisCI Build Status GoDoc License

flock implements a thread-safe sync.Locker interface for file locking. It also includes a non-blocking TryLock() function to allow locking without blocking execution.


flock is released under the BSD 3-Clause License. See the LICENSE file for more details.

Go Compatibility

This package makes use of the context package that was introduced in Go 1.7. As such, this package has an implicit dependency on Go 1.7+.


go get -u


import ""

fileLock := flock.NewFlock("/var/lock/go-lock.lock")

locked, err := fileLock.TryLock()

if err != nil {
	// handle locking error

if locked {
	// do work

For more detailed usage information take a look at the package API docs on GoDoc.