'2009/05/31'에 해당되는 글 1건

  1. 2009/05/31 IOCP를 이용한 서버를 만들면서... (6)
대략 구조가 accept를 하는 스레드와 worker스레드로 서버가 구성되어있다.

accept를 하는 스레드는 큰 입출력이 필요 없으므로 간결한 구조로 가기 위해 non-blocking 모드로 소켓을 생성하고 무한 루프를 돌렸다.

그리고 서버 가용성 테스트를 위해서 0.05초에 약 170바이트 정도의 패킷을 전송하는 더미 클라이언트를 64개 정도 붙였다.

그리고 나서 accept 스레드를 종료하여 서버를 종료 시키기 위해 루프가 멎을수 있도록 조건값을 변경 시켰다.

그런데도 감감 무소식......

디버거로 accept 스레드의 루프에 브레이크 포인트를 걸었으나 안걸림...

이게 뭔일이디야..

그래서 혹시나 해서 EventSelect로 바꿔보았다..

잘 된다...

이걸 어찌 설명해야할지.. IOCP하고 non-blocking 소켓은 쓰지 말아야 하는건가?
클라이언트를 한두개 붙였을 때는 non-blocking으로 해도 잘 걸렸는데 worker스레드가 좀 바쁘게 돌아가면 감감 무소식이다.

스레드 우선순위에서 밀리는 것인가..

모르겠군..
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/31 06:44 2009/05/31 06:44