Question of the Day 26-03-2019

Question of the Day
GATE 2015   CS   Question No. 231

Two processes X and Y need to access a critical section. Consider the following synchronization construct used by both the processes

Process X

/* other code for process X */
while(true)
{
    varP=true;
    while(varQ==true)
         {
         /* Critical Section */
                varP=false;
          }
}
/* other code for process X*/
Process Y

/* other code for process Y */
while(true)
{
    varQ=true;
    while(varP==true)
         {
         /* Critical Section */
                varQ=false;
          }
}
/* other code for process Y */

Here, varP and varQ are shared variables and both are initialized to false. Which one of the following statements is true?