Fix setFlag/waitFlag edge case that was causing duplicate joins
This commit is contained in:
parent
e6d6e3391e
commit
565e490078
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue