시간 제한 Condition의 남은 예산

한 번 정한 전체 마감 시간이 임의 복귀와 잠금 경쟁으로 늘어나면 안 된다.

1

초기 예산

timeout nanos

호출자가 허용한 전체 시간을 나노초로 바꾼다.

2

조건 대기

awaitNanos

대기 후 반환된 잔여 시간을 받는다.

3

술어 재검사

value < target

목표 미달이면 남은 예산으로 반복한다.

4

종료 판정

remaining <= 0

시간이 끝나면 상태 변경 없이 실패를 반환한다.

핵심: 매 반복마다 원래 제한 시간을 다시 주면 총 대기 상한이 사라진다.