Changed: #1440 Handle disconnect during abort

--HG--
branch : build_pipeline_v3
hg/feature/build_pipeline_v3
kaetemi 12 years ago
parent 2e43e90980
commit 9f701b7957

@ -256,6 +256,8 @@ public:
m_SlaveTaskState = SOMEWHERE_INBETWEEN; m_SlaveTaskState = SOMEWHERE_INBETWEEN;
// Done with the status updating, now do something fancey // Done with the status updating, now do something fancey
// ... TODO ... // ... TODO ...
// not implemented, so abort.
abortBuildTask(NULL);
} }
} }
} }
@ -372,11 +374,12 @@ public:
/// Master or user request to abort. /// Master or user request to abort.
virtual void abortBuildTask(NLNET::IModuleProxy *sender) virtual void abortBuildTask(NLNET::IModuleProxy *sender)
{ {
if (m_ActiveProject) if (m_ActiveProject && !m_AbortRequested)
{ {
// Sender NULL is request from slave (user exit, command or master disconnect), otherwise request from master. // Sender NULL is request from slave (user exit, command or master disconnect), otherwise request from master.
nlassert(sender == NULL || m_Master->getModuleProxy() == sender); // sanity check nlassert(sender == NULL || m_Master->getModuleProxy() == sender); // sanity check
nlwarning("Aborting");
// ?TODO? Actually wait for the task manager etc to end before sending the aborted confirmation. // ?TODO? Actually wait for the task manager etc to end before sending the aborted confirmation.
CInfoFlags::getInstance()->addFlag(PIPELINE_INFO_ABORTING); CInfoFlags::getInstance()->addFlag(PIPELINE_INFO_ABORTING);
m_AbortRequested = true; m_AbortRequested = true;

Loading…
Cancel
Save