락 소유 구간과 Condition await 구간은 자동으로 분리된다

await는 lock을 놓고 기다린 뒤 신호 후 다시 획득해 반환합니다.

critical section

lock owner · 상태 검사/변경

await

lock release · Condition wait set

signal 뒤

lock 재경쟁 · 재획득 후 반환

핵심: lock을 소유하지 않은 await·signal은 즉시 예외이므로 protocol 경계가 코드에 보여야 합니다.