mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 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).
 |