|
SMS발송모듈을 개발중인데요
현재 서버에서 발송결과에 대한 Report를 받는데 이게 무작위로 들어와서
받은데이타를 Queue에 넣고 thread에서 queue에서 데이타를 가져와서 처리하고 있는데요
대충구조는
TCriticalSection *lock = new TCriticalSection;
데이타를 받을때
lock->Enter();
que->Push(data);
lock->Leave();
쓰레드에서 데이타 처리시
if(que->Count > 0){
char* ptr;
lock->Enter();
ptr = (char *)que->Pop();
lock->Leave();
parse(ptr); //구문분석
}
이렇게 처리하는데요
문제는 데이타를 받구 큐에 데이타는 정상으로 들어가는데
이상하게도 큐에서 Pop()을할때 정상적으로 데이타가 나오다가 가끔가다가 쓰레기 데이타가 한두개 나오네요
TQueue가 쓰레드 안전하기 않은건가요? 지금 이거로 이틀째 골치가 아프네요
고수님들 도움좀 주세요 ㅜㅜ
|