Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 6 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 (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-12-08T15:14:36.000Z (15 days ago)
- Last Synced: 2024-12-13T17:12:13.772Z (10 days ago)
- Topics: file-locking, flock, flocks, go, golang, golang-libary
- Language: Go
- Homepage: https://pkg.go.dev/github.com/gofrs/flock
- Size: 193 KB
- Stars: 585
- Watchers: 13
- Forks: 66
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# flock
[![Go Reference](https://pkg.go.dev/badge/github.com/gofrs/flock.svg)](https://pkg.go.dev/github.com/gofrs/flock)
[![License](https://img.shields.io/badge/license-BSD_3--Clause-brightgreen.svg?style=flat)](https://github.com/gofrs/flock/blob/main/LICENSE)
[![Go Report Card](https://goreportcard.com/badge/github.com/gofrs/flock)](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).