Race Condition Audit

가끔 실패하는 동시성 버그를 좁히는 순서

공유 데이터에 쓰기가 있고, 그 접근이 하나의 원자적 동작으로 보호되지 않으면 실행 순서가 결과를 바꿉니다.

  1. 1 공유 상태 전역 변수, 캐시, 파일, DB 행처럼 둘 이상이 보는 값을 찾습니다.
  2. 2 쓰기 포함 읽기만 하는지, read-modify-write가 섞였는지 분리합니다.
  3. 3 원자성 확인 후 행동, 잔액 차감 같은 묶음이 끊기지 않는지 봅니다.
  4. 4 도구 검증 TSan, Helgrind, 스레드 덤프로 재현 어려운 순서를 잡습니다.
임계 영역 최소화 락 또는 atomic 적용 고수준 동시성 API