Index: src/libchcore/TTaskManager.cpp =================================================================== diff -u -N -rcdb4c898156398dd4f4bf8abd7c854eff42f6ae2 -r2e384de25de613cb582a966df7d1cb9468f1c825 --- src/libchcore/TTaskManager.cpp (.../TTaskManager.cpp) (revision cdb4c898156398dd4f4bf8abd7c854eff42f6ae2) +++ src/libchcore/TTaskManager.cpp (.../TTaskManager.cpp) (revision 2e384de25de613cb582a966df7d1cb9468f1c825) @@ -73,6 +73,15 @@ TTaskDefinition tTaskDefinition; tTaskDefinition.Load(strTaskPath); + for (size_t stIndex = 0; stIndex < m_tTasks.GetCount(); ++stIndex) + { + const TTaskInfoEntry& rEntry = m_tTasks.GetAt(stIndex); + TTaskPtr spTask = rEntry.GetTask(); + + if (spTask->GetTaskName() == tTaskDefinition.GetTaskName()) + THROW_CORE_EXCEPTION(eErr_TaskAlreadyExists); + } + return CreateTask(tTaskDefinition); }