|
From: Catherine S. <Cat...@ti...> - 2014-04-08 18:00:59
|
Hello,
I noticed that some unusual behavior with Concurrence which may indicate a bug somewhere. Here is my pseudocode:
Concurrence
{
Monitor:
{
while( MainKill == false)
{
//pprint("Monitor Cds Iteration");
MonitorCds:
{
PreCondition ...;
//Calls MonitorCds plan
}
}//end of while loop
}//end of Monitor
Operations:
{
while( MainKill == false)
{
//pprint("Main Loop Iteration");
}//end of while loop
Concurrence
{...Can call a variety of plans depending on what is issued from UI..}
}//end of Operations
}//end of Concurrence
Originally we only had Operations which ran fine, but then we needed two while loops running simultaneously and constantly so we used Concurrence.
Here is the bizarre behavior I noticed while experimenting with this structure:
While loops as originally done -- no response from UI
RepeatCondition instead of while loop -- exact same behavior as above
I used pprint statements to try to debug the issue. I placed the statements where I have them commented out in my pseudo code.
pprint statement at every while loop iteration -- normal, expected behavior, but since the iterations are quick this results in a lot of output print statements.
pprint statement at every while loop iteration at time interval of 60 sec -- very slow response from plans called by UI
pprint statement at every while loop iteration at time interval of 10 sec -- quicker response than the 60 sec interval test, but still slow.
Resolution: I eventually resolved the issue by issuing a blank print statement (print("")) at every loop iteration for both while loops. I now get the normal behavior as I expected.
Catherine
|