https://github.com/gofrs/flock
Thread-safe file locking library in Go
https://github.com/gofrs/flock
file-locking flock flocks go golang golang-libary
Last synced: 18 days ago
JSON representation
Thread-safe file locking library in Go
- Host: GitHub
- URL: https://github.com/gofrs/flock
- Owner: gofrs
- License: bsd-3-clause
- Created: 2015-08-30T21:45:35.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2025-05-11T12:00:31.000Z (20 days ago)
- Last Synced: 2025-05-11T13:18:56.649Z (20 days ago)
- Topics: file-locking, flock, flocks, go, golang, golang-libary
- Language: Go
- Homepage: https://pkg.go.dev/github.com/gofrs/flock
- Size: 185 KB
- Stars: 626
- Watchers: 12
- Forks: 68
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# flock
[](https://pkg.go.dev/github.com/gofrs/flock)
[](https://github.com/gofrs/flock/blob/main/LICENSE)
[](https://goreportcard.com/report/github.com/gofrs/flock)`flock` implements a thread-safe file lock.
It also includes a non-blocking `TryLock()` function to allow locking without blocking execution.
## Installation
```bash
go get -u github.com/gofrs/flock
```## Usage
```go
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](https://pkg.go.dev/github.com/gofrs/flock).## License
`flock` is released under the BSD 3-Clause License. See the [`LICENSE`](./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 ](https://github.com/theckman).