void SynchronousEngine<algorithm_t>::start(){ iteration_counter_ = 0; runSynchronous( &SynchronousEngine::executeInits); while ( iteration_counter_ < max_iterations_ ){ // mark vertex which has message as active in this superstep, no it is // not parallized receiveMessages(); clearMessages(); countActiveVertices(); runSynchronous( &SynchronousEngine::executeGathers); runSynchronous( &SynchronousEngine::executeApplys); runSynchronous( &SynchronousEngine::executeScatters); runSynchronous( &SynchronousEngine::executeAggregate); ++iteration_counter_; } }
void SynchronousEngine<algorithm_t>::start(){ runSynchronous( &SynchronousEngine::executeInits); aggregator->start(); while(true){ // mark vertex which has message as active in this superstep, no it is // not parallized receiveMessages(); clearMessages(); countActiveVertices(); if(num_active_vertices_ == 0){ break; } runSynchronous( &SynchronousEngine::executeGathers); runSynchronous( &SynchronousEngine::executeApplys); runSynchronous( &SynchronousEngine::executeScatters); // probe the aggregator aggregator->tick_synchronous(); ++iteration_counter_; } }
Utils::SynchronousProcessResponse VcsCommand::runVcs(const QStringList &arguments, int timeoutMS, Utils::ExitCodeInterpreter *interpreter) { Utils::SynchronousProcessResponse response; OutputProxy outputProxy; if (d->m_binaryPath.isEmpty()) { response.result = Utils::SynchronousProcessResponse::StartFailed; return response; } if (!(d->m_flags & VcsBasePlugin::SuppressCommandLogging)) emit outputProxy.appendCommand(d->m_workingDirectory, d->m_binaryPath, arguments); const bool sshPromptConfigured = !d->m_sshPasswordPrompt.isEmpty(); if (debugExecution) { QDebug nsp = qDebug().nospace(); nsp << "Command::runVcs" << d->m_workingDirectory << d->m_binaryPath << arguments << timeoutMS; if (d->m_flags & VcsBasePlugin::ShowStdOutInLogWindow) nsp << "stdout"; if (d->m_flags & VcsBasePlugin::SuppressStdErrInLogWindow) nsp << "suppress_stderr"; if (d->m_flags & VcsBasePlugin::SuppressFailMessageInLogWindow) nsp << "suppress_fail_msg"; if (d->m_flags & VcsBasePlugin::MergeOutputChannels) nsp << "merge_channels"; if (d->m_flags & VcsBasePlugin::SshPasswordPrompt) nsp << "ssh (" << sshPromptConfigured << ')'; if (d->m_flags & VcsBasePlugin::SuppressCommandLogging) nsp << "suppress_log"; if (d->m_flags & VcsBasePlugin::ForceCLocale) nsp << "c_locale"; if (d->m_flags & VcsBasePlugin::FullySynchronously) nsp << "fully_synchronously"; if (d->m_flags & VcsBasePlugin::ExpectRepoChanges) nsp << "expect_repo_changes"; if (d->m_codec) nsp << " Codec: " << d->m_codec->name(); } // TODO tell the document manager about expected repository changes // if (d->m_flags & ExpectRepoChanges) // Core::DocumentManager::expectDirectoryChange(d->m_workingDirectory); if (d->m_flags & VcsBasePlugin::FullySynchronously) { response = runSynchronous(arguments, timeoutMS, interpreter); } else { Utils::SynchronousProcess process; process.setExitCodeInterpreter(interpreter); connect(this, &VcsCommand::terminate, &process, &Utils::SynchronousProcess::terminate); if (!d->m_workingDirectory.isEmpty()) process.setWorkingDirectory(d->m_workingDirectory); QProcessEnvironment env = d->m_environment; VcsBasePlugin::setProcessEnvironment(&env, (d->m_flags & VcsBasePlugin::ForceCLocale), d->m_sshPasswordPrompt); process.setProcessEnvironment(env); process.setTimeout(timeoutMS); if (d->m_codec) process.setCodec(d->m_codec); // Suppress terminal on UNIX for ssh prompts if it is configured. if (sshPromptConfigured && (d->m_flags & VcsBasePlugin::SshPasswordPrompt)) process.setFlags(Utils::SynchronousProcess::UnixTerminalDisabled); // connect stderr to the output window if desired if (d->m_flags & VcsBasePlugin::MergeOutputChannels) { process.setProcessChannelMode(QProcess::MergedChannels); } else if (d->m_progressiveOutput || !(d->m_flags & VcsBasePlugin::SuppressStdErrInLogWindow)) { process.setStdErrBufferedSignalsEnabled(true); connect(&process, &Utils::SynchronousProcess::stdErrBuffered, this, &VcsCommand::bufferedError); } // connect stdout to the output window if desired if (d->m_progressParser || d->m_progressiveOutput || (d->m_flags & VcsBasePlugin::ShowStdOutInLogWindow)) { process.setStdOutBufferedSignalsEnabled(true); connect(&process, &Utils::SynchronousProcess::stdOutBuffered, this, &VcsCommand::bufferedOutput); } process.setTimeOutMessageBoxEnabled(true); // Run! response = process.run(d->m_binaryPath.toString(), arguments); } if (!d->m_aborted) { // Success/Fail message in appropriate window? if (response.result == Utils::SynchronousProcessResponse::Finished) { if (d->m_flags & VcsBasePlugin::ShowSuccessMessage) { emit outputProxy.appendMessage(response.exitMessage(d->m_binaryPath.toUserOutput(), timeoutMS)); } } else if (!(d->m_flags & VcsBasePlugin::SuppressFailMessageInLogWindow)) { emit outputProxy.appendError(response.exitMessage(d->m_binaryPath.toUserOutput(), timeoutMS)); } } emitRepositoryChanged(); return response; }