[Network] debug download "abort" flag on linux

This commit is contained in:
maxkadushkin
2022-01-24 23:33:41 +03:00
committed by Maxim Kadushkin
parent 26fbe3babf
commit 2a3f16a4d8
3 changed files with 15 additions and 11 deletions

View File

@ -241,7 +241,7 @@ namespace NSNetwork
if (NSFile::CFileBinary::Exists(m_sDownloadFilePath))
NSFile::CFileBinary::Remove(m_sDownloadFilePath);
}
return download_external(m_sDownloadFileUrl, m_sDownloadFilePath, m_func_onProgress, m_bIsExit);
return download_external(m_sDownloadFileUrl, m_sDownloadFilePath, m_func_onProgress, m_check_aborted);
}
virtual int UploadData() override
{
@ -264,18 +264,22 @@ namespace NSNetwork
};
CFileTransporter_private::CFileTransporter_private(const std::wstring &sDownloadFileUrl, bool bDelete)
: m_pInternal(new CFileTransporterBaseCURL(sDownloadFileUrl, bDelete))
{
m_pInternal = new CFileTransporterBaseCURL(sDownloadFileUrl, bDelete);
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
CFileTransporter_private::CFileTransporter_private(const std::wstring &sUploadUrl, const unsigned char* cData, const int nSize)
: m_pInternal(new CFileTransporterBaseCURL(sUploadUrl, cData, nSize))
{
m_pInternal = new CFileTransporterBaseCURL(sUploadUrl, cData, nSize);
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
CFileTransporter_private::CFileTransporter_private(const std::wstring &sUploadUrl, const std::wstring &sUploadFilePath)
: m_pInternal(new CFileTransporterBaseCURL(sUploadUrl, sUploadFilePath))
{
m_pInternal = new CFileTransporterBaseCURL(sUploadUrl, sUploadFilePath);
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
}
}

View File

@ -486,19 +486,19 @@ namespace NSNetwork
CFileTransporter_private::CFileTransporter_private(const std::wstring &sDownloadFileUrl, bool bDelete)
: m_pInternal(new CFileTransporterBaseWin(sDownloadFileUrl, bDelete))
{
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);;
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
CFileTransporter_private::CFileTransporter_private(const std::wstring &sUploadUrl, const unsigned char* cData, const int nSize)
: m_pInternal(new CFileTransporterBaseWin(sUploadUrl, cData, nSize))
{
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);;
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
CFileTransporter_private::CFileTransporter_private(const std::wstring &sUploadUrl, const std::wstring &sUploadFilePath)
: m_pInternal(new CFileTransporterBaseWin(sUploadUrl, sUploadFilePath))
{
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);;
m_pInternal->m_check_aborted = std::bind(&CBaseThread::isAborted, this);
}
}
}

View File

@ -59,7 +59,7 @@ namespace NSNetwork
return url.substr(pos);
}
int download_external(const std::wstring& sUrl, const std::wstring& sOutput, std::function<void(int)> func_onProgress, std::atomic<bool>* isExit)
int download_external(const std::wstring& sUrl, const std::wstring& sOutput, std::function<void(int)> func_onProgress, std::function<bool(void)> func_checkAborted = nullptr)
{
pid_t pid;
int nReturnCode = -1;
@ -132,7 +132,7 @@ namespace NSNetwork
while (1)
{
if(isExit && isExit->load())
if(func_checkAborted && func_checkAborted())
{
kill(pid, SIGTERM);
//while (-1 == waitpid(pid, &status, 0)); // wait for child to complete
@ -166,7 +166,7 @@ namespace NSNetwork
int waitres;
while (1) // wait for child to complete
{
if(isExit && isExit->load())
if(func_checkAborted && func_checkAborted())
{
kill(pid, SIGTERM);
return nReturnCode;
@ -220,7 +220,7 @@ namespace NSNetwork
int waitres;
while (1) // wait for child to complete
{
if(isExit && isExit->load())
if(func_checkAborted && func_checkAborted())
{
kill(pid, SIGTERM);
return nReturnCode;