educative.io

Is a mutex.acquire() statement missing here?

Is there a missing mutex.acquire() statement in this example code in the course?

void efficientWaitingFunction() {
  mutex.acquire() 	
  while (predicate == false) { 
    condVar.wait()
   // is mutex.acquire() missing here?
  }
  // Do something useful
  mutex.release()
}

void changePredicate() { 
  mutex.acquire()
  set predicate = true
  condVar.signal()
  mutex.release()
}

Course: Java Multithreading for Senior Engineering Interviews - Learn Interactively
Lesson: Mutex vs Monitor - Java Multithreading for Senior Engineering Interviews