Locking for function calls and queuing on lock
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
README.md
fnlock.js
package.json

README.md

fnlock: Locking for function calls and queuing on lock

fnlock is a module that allows locking on asyncronous functions and queuing of function calls, to be called on release.

Installing

npm install fnlock

Using

Simple lock with function call queuing:

var fnlock = require('fnlock');
function run(arg){
   fnlock.lock(function(release){
          console.log("Enter "+arg);
          setTimeout(release,1000);
       });
}
run(1);
run(2);
run(3);

It's supposed that the script takes 3 seconds to run.

Setting lock state on a function

var fnlock = require('fnlock');
function run(arg) {
   fnlock.lock('run',function(release){
      console.log("Enter "+arg);
      release();
   });
}

fnlock.lock('run');
run('YEY');
setTimeout(function(){ fnlock.unlock('run'); },1000);

It's supposed that the script takes 1 second to run.