mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-15 00:19:29 +01:00
ed75533cb1
* optionally protect against multiple starts with flock Fixes #1823 * use traditional .lock extension * move config key to top level |
||
---|---|---|
.. | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
flock_aix.go | ||
flock_unix.go | ||
flock_winapi.go | ||
flock_windows.go | ||
flock.go | ||
LICENSE | ||
README.md |
flock
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
import "github.com/gofrs/flock"
:= flock.New("/var/lock/go-lock.lock")
fileLock
, err := fileLock.TryLock()
locked
if err != nil {
// handle locking error
}
if locked {
// do work
.Unlock()
fileLock}
For more detailed usage information take a look at the package API docs on GoDoc.