임계 영역 안에는 상태 판정과 commit만 두고 기다림은 분리한다
lock 목적은 불변식 보호이고 조건 대기 목적은 다른 thread가 상태를 바꿀 기회를 주는 것입니다.
| 책임 | lock 안 | 이유 |
|---|---|---|
| 조건 검사 | 예 | 같은 상태 snapshot |
| Queue 변경 | 예 | 원자 commit |
| sleep backoff | 아니오 | 다른 thread 허용 |
| 로그 I/O | 아니오 | 긴 점유 방지 |
| signal | 상태 변경 뒤 | 조건 공개 |
핵심: I/O·backoff·긴 계산은 가능한 한 lock 밖으로 이동합니다.