fix issue with potentional concurrency crash when updating lookup tables in PEER_LINK;

82-dvmbridge---implement-notch-filter-for-2175hz-trc-guard-tone
Bryan Biedenkapp 1 year ago
parent a82f848de4
commit 3b395a99cf

@ -63,6 +63,8 @@ bool Thread::run()
void Thread::wait()
{
if (!m_started)
return;
#if defined(_WIN32)
::WaitForSingleObject(m_thread, INFINITE);
::CloseHandle(m_thread);

@ -178,6 +178,12 @@ namespace lookups
*/
void filename(std::string filename) { m_filename = filename; };
/**
* @brief Helper to set the reload time of this lookup table.
* @param reloadTime Lookup time in seconds.
*/
void setReloadTime(uint32_t reloadTime) { m_reloadTime = 0U; }
protected:
std::string m_filename;
uint32_t m_reloadTime;

@ -599,6 +599,12 @@ namespace lookups
*/
void filename(std::string filename) { m_rulesFile = filename; };
/**
* @brief Helper to set the reload time of this lookup table.
* @param reloadTime Lookup time in seconds.
*/
void setReloadTime(uint32_t reloadTime) { m_reloadTime = 0U; }
private:
std::string m_rulesFile;
uint32_t m_reloadTime;

@ -222,6 +222,7 @@ void PeerNetwork::userPacketHandler(uint32_t peerId, FrameQueue::OpcodePair opco
file.close();
m_tidLookup->stop(true);
m_tidLookup->setReloadTime(0U);
m_tidLookup->filename(filename);
m_tidLookup->reload();
@ -359,6 +360,7 @@ void PeerNetwork::userPacketHandler(uint32_t peerId, FrameQueue::OpcodePair opco
file.close();
m_ridLookup->stop(true);
m_ridLookup->setReloadTime(0U);
m_ridLookup->filename(filename);
m_ridLookup->reload();
@ -496,6 +498,7 @@ void PeerNetwork::userPacketHandler(uint32_t peerId, FrameQueue::OpcodePair opco
file.close();
m_pidLookup->stop(true);
m_pidLookup->setReloadTime(0U);
m_pidLookup->filename(filename);
m_pidLookup->reload();

Loading…
Cancel
Save

Powered by TurnKey Linux.