refs #476 The readers should delete their QNetworkAccessManager in cleanup(), just before they move back to the main thread for later deletion.

This commit is contained in:
Mathew Sutcliffe
2015-11-25 21:02:32 +00:00
parent 3e1eb350c5
commit ac573b8d92
8 changed files with 42 additions and 0 deletions

View File

@@ -66,6 +66,15 @@ namespace BlackCore
QTimer::singleShot(500, this, &CSetupReader::ps_readSetup);
}
void CSetupReader::cleanup()
{
delete this->m_networkManagerBootstrap;
this->m_networkManagerBootstrap = nullptr;
delete this->m_networkManagerUpdateInfo;
this->m_networkManagerUpdateInfo = nullptr;
}
void CSetupReader::ps_readSetup()
{
this->threadAssertCheck();

View File

@@ -44,6 +44,9 @@ namespace BlackCore
//! \copydoc CThreadedReader::initialize
virtual void initialize() override;
//! \copydoc CThreadedReader::cleanup
virtual void cleanup() override;
private slots:
//! Setup has been read
//! \threadsafe

View File

@@ -37,6 +37,12 @@ namespace BlackCore
Q_UNUSED(s);
}
void CVatsimBookingReader::cleanup()
{
delete this->m_networkManager;
this->m_networkManager = nullptr;
}
void CVatsimBookingReader::ps_read()
{
this->threadAssertCheck();

View File

@@ -43,6 +43,10 @@ namespace BlackCore
//! Data have been read
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
protected:
//! \copydoc CThreadedReader::cleanup
virtual void cleanup() override;
private slots:
//! Bookings have been read
//! \threadsafe

View File

@@ -149,6 +149,12 @@ namespace BlackCore
Q_UNUSED(s);
}
void CVatsimDataFileReader::cleanup()
{
delete this->m_networkManager;
this->m_networkManager = nullptr;
}
void CVatsimDataFileReader::ps_read()
{
this->threadAssertCheck();

View File

@@ -112,6 +112,10 @@ namespace BlackCore
//! Data have been read
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
protected:
//! \copydoc CThreadedReader::cleanup
virtual void cleanup() override;
private slots:
//! Data have been read, parse VATSIM file
void ps_parseVatsimFile(QNetworkReply *nwReply);

View File

@@ -57,6 +57,12 @@ namespace BlackCore
return m_metars.size();
}
void CVatsimMetarReader::cleanup()
{
delete this->m_networkManager;
this->m_networkManager = nullptr;
}
void CVatsimMetarReader::ps_readMetars()
{
this->threadAssertCheck();

View File

@@ -56,6 +56,10 @@ namespace BlackCore
//! Data have been read
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
protected:
//! \copydoc CThreadedReader::cleanup
virtual void cleanup() override;
private slots:
//! Decode METARs
//! \threadsafe