Surely it should execute 4 times bcoz of lower loop has conditional string stop (N=3) & stop. And the upper loop executes 2 times(N=2). So array size 6.
There is a data dependency between the bottom loop and the sending of the stop command.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions Unofficial Forum Rules and Guidelines "Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Apologize i will get returned back my ans as b. I ran a snippet that was having enqueue function before merge error so that I got b. Array size six. Now I run a snippet as mentioned above question but I got array size four. Though the option is not there, I would say D. But really not clear how could we say the vi does not stop (D). How to approach this type of loop synchronism.
D, the VI does not stop because the While Loop doesn't stop because it never receives the 'STOP' order.
The While loop receives 5 elements from the two For loops. But it will not stop without receiving a 'STOP'. And the 'STOP' cannont be enqueued before the While loop ends ends because of data dependency (the Merge Errors before the Enqueue waits for the error data from the While loop)
What we have here is a form of "deadlock" (just to throw out the CS term). Some might call it a "catch 22". A is waiting for B to tell it to stop but B is waiting for A to stop in order to run. All because of an error wire...
There are only two ways to tell somebody thanks: Kudos and Marked Solutions Unofficial Forum Rules and Guidelines "Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
D The final Endqueue Element (with "STOP" message) will be executed after the end of the While Loop, but this While Loop is waiting for the "STOP" message to end, the vi will run infinitely.