An open API service indexing awesome lists of open source software.

https://github.com/scull7/file-lock

A file based locking mechanism for node processes
https://github.com/scull7/file-lock

Last synced: 6 months ago
JSON representation

A file based locking mechanism for node processes

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/scull7/file-lock.svg)](https://travis-ci.org/scull7/file-lock)

# file-lock
A file based locking mechanism for node processes

## Usage

```javascript
var Lock = require('file-lock');
var lockFilePath = '/tmp/my-lock'

Lock.obtain(lockFilePath, process.pid)

// All calls to lock functions return a Result( ok:, msg: )
// object.
.then(function(result) {
if (result.ok) {
// ... do stuff with synchronized resources.
} else {
throw new Error(result.msg);
}

return Lock.release(lockFilePath, process.pid);
})
.then(function(result) {
if (!result.ok) {
throw new Error(result.msg);
}
else {
// ... do non-synchronized stuff here.
}
});
```

### API

#### Lock.obtain :: String -> Int -> Promise Result (Bool, String)

#### Lock.release :: String -> Int -> Promise Result (Bool, String)

#### Lock.hasLock :: String -> Int -> Promise Result (Bool, String)