mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 08:03:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # flock
 | |
| [](https://travis-ci.org/gofrs/flock)
 | |
| [](https://godoc.org/github.com/gofrs/flock)
 | |
| [](https://github.com/gofrs/flock/blob/master/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.
 | |
| 
 | |
| ## License
 | |
| `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+.
 | |
| 
 | |
| ## Installation
 | |
| ```
 | |
| 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://godoc.org/github.com/gofrs/flock).
 | 
