그전까지 synchronized block구현을
#define __SAUTOLOCK_SCORPED(cs) cs.Lock(); for( int __synchronized_count = 0; __synchronized_count < 1; __synchronized_count++, cs.Unlock() )
이런식으로 사용하고 있었다.
안에서 break를 걸면 문제가 생기지만 그렇게 쓸일은 없고-ㅅ-;
익셉션 처리는 안하므로 별상관없고...라고 생각하고 있었는데
for문 안에서 사용하는 경우에 for문을 종료할려고 break를 한다던가 continue를 해보리면 먹어버린다는 엄청난 버그가-_-;
게다가 요새는 VERIFY_RETURN식으로 쓰는게 많아서 불안한 부분도 꽤 있다.
이에 대해 gpg에 여러 글들이 올라오는 와중에 획기적인 해결방법이 나왔다.
synchronized block in C++
http://ricanet.com/new/view.php?id=blog/050807
improved synchronized block in C++
http://ricanet.com/new/view.php?id=blog/050811a
코드도 상당히 깔끔하며 여러가지 문제점을 쉽게 해결을 해주는 솔루션이다...
역시 세상은 넓다
'게임개발 > 팁' 카테고리의 다른 글
클립보드에 텍스트 넣기/빼기 (1) | 2007.02.14 |
---|---|
서브버전 로그 꼭 남기게 하는 팁 (2) | 2007.01.05 |
최상위 비트 인덱스 가져오기 (0) | 2006.05.02 |
Fast User Switching을 지원하는 응용 프로그램 만들기 (0) | 2006.03.28 |
시스템 이미지 가져다 쓰기 (1) | 2006.03.06 |