void JobContainer::updateTaskState( af::MCTaskUp &taskup, RenderContainer * renders, MonitorContainer * monitoring) { switch( taskup.getStatus()) { case af::TaskExec::UPNULL: case af::TaskExec::UPNoTaskRunning: case af::TaskExec::UPNoJob: case af::TaskExec::UPLAST: AFERRAR("JobContainer::updateTaskState: Bad task update status (jobID=%d).\n", taskup.getNumJob()); return; } JobContainerIt jobsIt( this); JobAf* job = jobsIt.getJob( taskup.getNumJob()); if( job != NULL ) { job->v_updateTaskState( taskup, renders, monitoring); return; } // Job does not exist! AFERRAR("JobContainer::updateTaskState: Job with id=%d does not exists.", taskup.getNumJob()) if( taskup.getStatus() == af::TaskExec::UPPercent) RenderAf::closeLostTask( taskup); }
void Task::v_updateState( const af::MCTaskUp & taskup, RenderContainer * renders, MonitorContainer * monitoring, bool & errorHost) { if( m_run == NULL) { std::ostringstream stream; stream << "Task::updatestate: Task is not running: " << m_block->m_job->getName(); stream << "[" << taskup.getNumBlock() << "][" << taskup.getNumTask() << "]"; AFCommon::QueueLogError( stream.str()); if(( taskup.getStatus() == af::TaskExec::UPPercent ) || ( taskup.getStatus() == af::TaskExec::UPWarning )) RenderAf::closeLostTask( taskup); return; } //printf("Task::updateState:\n"); m_run->update( taskup, renders, monitoring, errorHost); if( taskup.getDataLen() != 0 ) v_writeTaskOutput( taskup); deleteRunningZombie(); }