Fix setFlag/waitFlag edge case that was causing duplicate joins

This commit is contained in:
Calvin Montgomery 2014-07-13 12:23:04 -07:00
parent e6d6e3391e
commit 565e490078
2 changed files with 3 additions and 7 deletions

View file

@ -26,14 +26,10 @@ function ActiveLock(channel) {
ActiveLock.prototype = {
lock: function () {
this.count++;
//console.log('dbg: lock/count: ', this.count);
//console.trace();
},
release: function () {
this.count--;
//console.log('dbg: release/count: ', this.count);
//console.trace();
if (this.count === 0) {
/* sanity check */
if (this.channel.users.length > 0) {
@ -87,8 +83,8 @@ Channel.prototype.waitFlag = function (flag, cb) {
if (self.is(flag)) {
cb();
} else {
var wait = function () {
if (self.is(flag)) {
var wait = function (f) {
if (f === flag) {
self.unbind("setFlag", wait);
cb();
}

View file

@ -140,7 +140,7 @@ User.prototype.waitFlag = function (flag, cb) {
cb();
} else {
var wait = function (f) {
if ((f & flag) === flag) {
if (f === flag) {
self.unbind("setFlag", wait);
cb();
}