Fix activeLock bug
This commit is contained in:
parent
f92d4bc5d4
commit
1c77a24839
|
|
@ -282,9 +282,11 @@ Channel.prototype.notifyModules = function (fn, args) {
|
||||||
Channel.prototype.joinUser = function (user, data) {
|
Channel.prototype.joinUser = function (user, data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
self.activeLock.lock();
|
||||||
self.waitFlag(Flags.C_READY, function () {
|
self.waitFlag(Flags.C_READY, function () {
|
||||||
/* User closed the connection before the channel finished loading */
|
/* User closed the connection before the channel finished loading */
|
||||||
if (user.socket.disconnected) {
|
if (user.socket.disconnected) {
|
||||||
|
self.activeLock.release();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -293,6 +295,7 @@ Channel.prototype.joinUser = function (user, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
Logger.errlog.log("user.refreshAccount failed at Channel.joinUser");
|
Logger.errlog.log("user.refreshAccount failed at Channel.joinUser");
|
||||||
Logger.errlog.log(err.stack);
|
Logger.errlog.log(err.stack);
|
||||||
|
self.activeLock.release();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -304,6 +307,7 @@ Channel.prototype.joinUser = function (user, data) {
|
||||||
|
|
||||||
function afterAccount() {
|
function afterAccount() {
|
||||||
if (self.dead || user.socket.disconnected) {
|
if (self.dead || user.socket.disconnected) {
|
||||||
|
if (self.activeLock) self.activeLock.release();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -312,11 +316,11 @@ Channel.prototype.joinUser = function (user, data) {
|
||||||
if (user.account.channelRank !== user.account.globalRank) {
|
if (user.account.channelRank !== user.account.globalRank) {
|
||||||
user.socket.emit("rank", user.account.effectiveRank);
|
user.socket.emit("rank", user.account.effectiveRank);
|
||||||
}
|
}
|
||||||
self.activeLock.lock();
|
|
||||||
self.acceptUser(user);
|
self.acceptUser(user);
|
||||||
} else {
|
} else {
|
||||||
user.account.channelRank = 0;
|
user.account.channelRank = 0;
|
||||||
user.account.effectiveRank = user.account.globalRank;
|
user.account.effectiveRank = user.account.globalRank;
|
||||||
|
self.activeLock.release();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue