Skip to content

Instantly share code, notes, and snippets.

@elarkin
Created November 24, 2010 03:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save elarkin/713082 to your computer and use it in GitHub Desktop.
Save elarkin/713082 to your computer and use it in GitHub Desktop.
A simple mutex library for node.js v0.3.1
var EventEmitter = require('events').EventEmitter
var Mutex = function() {
var queue = new EventEmitter();
var locked = false;
this.lock = function lock(fn) {
if (locked) {
queue.once('ready',function() {
lock(fn);
});
} else {
locked = true;
fn();
}
}
this.release = function release() {
locked = false;
queue.emit('ready');
}
}
exports.getMutex = function() {
var m = new Mutex();
return {
lock: m.lock,
release: m.release
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment