Commit 42ab81a2 authored by whitlocb's avatar whitlocb
Browse files

I fixed a bug where session files would be put into the error state when...

I fixed a bug where session files would be put into the error state when restoring sessions. This happened on machines with multiple host profiles, which causes the Engine Chooser dialog to open. That dialog's event loop was allowing some unwanted processing to take place and that ultimately got the plots into a bad state.



git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@8909 18c085ea-50e0-402c-830e-de6fd14e8384
parent 61d97f06
......@@ -32,6 +32,7 @@
<li>The option for TACC systems in visit-install is now better represented in visit-install's help message.</li>
<li>Parallel communication code in the compute engine, which was related to libsim, has been fixed so that libsim once again works with parallel simulations.</li>
<li>VisIt now clears metadata in the metadata server and the compute engine prior to restoring session files. This prevents old metadata from affecting how the session file loads and ensures that transient variables are detected.</li>
<li>VisIt no longer erroneously places plots into the error state when restoring sessions as could happen when the Engine Chooser window was active.</li>
</ul>
<p>Click the following link to view the release notes for the previous version
of VisIt: <a href="relnotes1.12.0.html">VisIt 1.12.0 Release Notes</a>.</p>
......
......@@ -408,6 +408,12 @@ ViewerEngineManager::EngineExists(const EngineKey &ek) const
//
// Mark C. Miller, Wed Jun 17 14:27:08 PDT 2009
// Replaced CATCHALL(...) with CATCHALL.
//
// Brad Whitlock, Mon Nov 9 11:40:27 PST 2009
// I expanded when inLaunch is true so we can use it to prevent certain
// types of events from executing elsewhere via the engine chooser's
// event loop.
//
// ****************************************************************************
bool
......@@ -431,6 +437,11 @@ ViewerEngineManager::CreateEngine(const EngineKey &ek,
if (InLaunch())
return false;
// Consider the state to be inLaunch from now on so we can check for
// recursion into this function as a result of getting into the
// engine chooser's event loop.
inLaunch = true;
//
// If an engine for the host doesn't already exist, create one.
//
......@@ -441,6 +452,7 @@ ViewerEngineManager::CreateEngine(const EngineKey &ek,
if (!chooser->SelectProfile(clientAtts,ek.HostName(),skipChooser,
newEngine.profile))
{
inLaunch = false;
return false;
}
......@@ -499,7 +511,6 @@ ViewerEngineManager::CreateEngine(const EngineKey &ek,
//
TRY
{
inLaunch = true;
if (!ShouldShareBatchJob(ek.HostName()) &&
HostIsLocalHost(ek.HostName()))
{
......@@ -542,7 +553,6 @@ ViewerEngineManager::CreateEngine(const EngineKey &ek,
// Add the new engine to the engine list.
engines[ek] = newEngine;
inLaunch = false;
// Make the engine manager observe the proxy's status atts.
newEngine.proxy->GetStatusAttributes()->Attach(this);
......@@ -636,6 +646,9 @@ ViewerEngineManager::CreateEngine(const EngineKey &ek,
}
ENDTRY
// Nothing bad happened and the engine is launched so turn off this flag.
inLaunch = false;
// Clear the status message.
ClearStatus();
......
......@@ -6997,12 +6997,17 @@ ViewerSubject::LineQuery()
//
// Mark C. Miller, Wed Jun 17 17:46:18 PDT 2009
// Replaced CATCHALL(...) with CATCHALL
//
// Brad Whitlock, Mon Nov 9 11:51:49 PST 2009
// Don't process messages while the engine is launching.
//
// ****************************************************************************
void
ViewerSubject::ProcessFromParent()
{
if(ViewerEngineManager::Instance()->InExecute())
if(ViewerEngineManager::Instance()->InExecute() ||
ViewerEngineManager::Instance()->InLaunch())
{
debug1 << "The viewer engine manager is busy processing a request "
"so we should not process input from the client. Let's "
......@@ -7222,6 +7227,10 @@ ViewerSubject::EnableSocketSignals()
//
// Mark C. Miller, Wed Jun 17 17:46:18 PDT 2009
// Replaced CATCHALL(...) with CATCHALL
//
// Brad Whitlock, Mon Nov 9 11:47:17 PST 2009
// Don't process commands during an engine launch.
//
// ****************************************************************************
void
......@@ -7277,6 +7286,7 @@ ViewerSubject::ProcessRendererMessage()
// event loop to try to process the message again later.
//
else if(ViewerEngineManager::Instance()->InExecute() ||
ViewerEngineManager::Instance()->InLaunch() ||
launchingComponent)
{
// Add the message back into the buffer.
......@@ -7548,6 +7558,11 @@ ViewerSubject::LaunchProgressCB(void *d, int stage)
//
// Mark C. Miller, Wed Jun 17 17:46:18 PDT 2009
// Replaced CATCHALL(...) with CATCHALL
//
// Brad Whitlock, Mon Nov 9 11:49:32 PST 2009
// Don't send keep alives during an engine launch (this flag more broadly
// applies to don't do it during the engine chooser or during launch).
//
// ****************************************************************************
void
......@@ -7555,7 +7570,9 @@ ViewerSubject::SendKeepAlives()
{
TRY
{
if(launchingComponent || ViewerEngineManager::Instance()->InExecute())
if(launchingComponent ||
ViewerEngineManager::Instance()->InExecute() ||
ViewerEngineManager::Instance()->InLaunch())
{
// We're launching a component so we don't want to send keep alive
// signals right now but try again in 20 seconds.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment