Make sure rptrMapMutex is unlocked fixes #1

pull/11/head
Geoffrey Merck 4 years ago
parent 414db946ca
commit 1b7548f824

@ -531,8 +531,7 @@ bool IRCDDBApp::findRepeater(const std::string& rptrCall)
std::string s("NONE"); std::string s("NONE");
std::string zonerp_cs; std::string zonerp_cs;
d->rptrMapMutex.lock(); std::lock_guard lockRptrMap(d->rptrMapMutex);
if (1 == d->rptrMap.count(arearp_cs)) { if (1 == d->rptrMap.count(arearp_cs)) {
IRCDDBAppRptrObject o = d->rptrMap[arearp_cs]; IRCDDBAppRptrObject o = d->rptrMap[arearp_cs];
@ -741,7 +740,7 @@ void IRCDDBApp::doUpdate(std::string& msg)
return; // no valid key return; // no valid key
if (tableID == 1) { if (tableID == 1) {
d->rptrMapMutex.lock(); std::lock_guard lockRptrMap(d->rptrMapMutex);
IRCDDBAppRptrObject newRptr(dt, key, value, m_maxTime); IRCDDBAppRptrObject newRptr(dt, key, value, m_maxTime);
d->rptrMap[key] = newRptr; d->rptrMap[key] = newRptr;
@ -759,9 +758,8 @@ void IRCDDBApp::doUpdate(std::string& msg)
m2->addParam(getIPAddress(value)); m2->addParam(getIPAddress(value));
d->replyQ.putMessage(m2); d->replyQ.putMessage(m2);
} }
d->rptrMapMutex.unlock();
} else if (0==tableID && d->initReady) { } else if (0==tableID && d->initReady) {
d->rptrMapMutex.lock(); std::lock_guard lockRptrMap(d->rptrMapMutex);
std::string userCallsign(key); std::string userCallsign(key);
std::string arearp_cs(value); std::string arearp_cs(value);
std::string zonerp_cs; std::string zonerp_cs;
@ -785,7 +783,6 @@ void IRCDDBApp::doUpdate(std::string& msg)
m2->addParam(ip_addr); m2->addParam(ip_addr);
m2->addParam(tk + std::string(" ") + timeToken); m2->addParam(tk + std::string(" ") + timeToken);
d->replyQ.putMessage(m2); d->replyQ.putMessage(m2);
d->rptrMapMutex.unlock();
} }
} }
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.