|
@@ -71,8 +71,16 @@ bool CSATExecutor::IsTaskExist(SATHTTP::STTask &task)
|
|
|
|
|
|
|
|
|
if ( _tcsicmp(task.taskInfo.strTaskType.c_str(), "3") != 0 ) {
|
|
|
+ bool bExsit = false;
|
|
|
+ AutoThreadSection ats(&m_csTask);
|
|
|
+ for ( std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin(); it != m_vtTask.end(); it++ ) {
|
|
|
+ if ( it->taskInfo.nInstanceId == task.taskInfo.nInstanceId )
|
|
|
+ bExsit = true;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- m_vtSmokingTask.push_back(task);
|
|
|
+ if ( !bExsit )
|
|
|
+ m_vtSmokingTask.push_back(task);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@@ -80,6 +88,7 @@ bool CSATExecutor::IsTaskExist(SATHTTP::STTask &task)
|
|
|
|
|
|
|
|
|
bool found = false;
|
|
|
+ AutoThreadSection ats(&m_csTask);
|
|
|
std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
|
|
|
for ( ; it != m_vtTask.end(); it++ ) {
|
|
|
|
|
@@ -134,6 +143,7 @@ void CSATExecutor::DownloadTask(SATHTTP::STTask &task)
|
|
|
|
|
|
SATHTTP::STTask* CSATExecutor::IsThereATaskInProcess()
|
|
|
{
|
|
|
+ AutoThreadSection ats(&m_csTask);
|
|
|
std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
|
|
|
for ( ; it != m_vtTask.end(); it++ ) {
|
|
|
|
|
@@ -147,6 +157,7 @@ SATHTTP::STTask* CSATExecutor::IsThereATaskInProcess()
|
|
|
|
|
|
SATHTTP::STTask* CSATExecutor::GetFreeTask()
|
|
|
{
|
|
|
+ AutoThreadSection ats(&m_csTask);
|
|
|
std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
|
|
|
for ( ; it != m_vtTask.end(); it++ ) {
|
|
|
|