1 시스템 가용 메모리 부족시
1.1 문제
InitializeCriticalSection()함수를 이용해서 만들어진 critical section은 시스템의 가용메모리가 부족하면 EnterCriticalSection()할때 system exception이 발생하게 된다.
1.2 해결
InitializeCriticalSection() 함수 대신 InitializeCriticalSectionAndSpinCount() 함수를 사용한다. 단순하게 SEH를 사용하면 될 것 같지만 SEH는 문제를 해결해 주기 보다는 감추는 경우가 많기 때문에 되도록 사용하지 않는 것이 좋다.
2 Vista에서 제한점
critical section으로 lock걸린 구역안에서 Sleep() 함수를 사용하면 안된다.