Skip to content

Instantly share code, notes, and snippets.

@mufasa71
Forked from oivoodoo/mutex.js
Created January 22, 2014 14:15
Show Gist options
  • Save mufasa71/8559411 to your computer and use it in GitHub Desktop.
Save mufasa71/8559411 to your computer and use it in GitHub Desktop.
var Mutex = function() {
this.queues = [];
this.locked = false;
};
Mutex.prototype = {
push: function(callback) {
var self = this;
this.queues.push(callback);
if (!this.locked) {
this.locked = true;
var f = this.queues.pop();
try {
f(function() {
self.locked = false;
});
} catch(ex) {
self.locked = false;
}
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment