I have a question about the processing of statements and short-circuit vs no short-circuit (I do not know the exact name for no short-circuit).
The scenario is the following. Imagine I have two statements p and q that are evaluated in the following manner:
if ( p && q ) then ....
The tricky thing is that the statement q is a blocking-statement, that blocks until true or false.
Imagine the following situation: p is true and then the program blocks in q. Then, when q is released and returns true, p is not longer true (due to interleaving, for instance).
My question is how the processing of this if will occur if there is short-cirtcuit or not. I guess that with short-circuit it will not check p again. However, if there is no short-circuit it should check that both statements are true at the same time before entering the if clause, is not it? in which cases will this occur?