[처리완료] EPOLL 구조에서 대량소켓 처리시 send 함수 후 죽는 현상
글쓴이: fivestar / 작성시간: 목, 2011/08/11 - 4:39오후
안녕하세요
다중화 소켓 처리를 하기 위해서
EPOLL 구조로 변경을 한후 테스트 중인데
소켓 CONNECTION 하는 프로그램을 대량 쓰레드로 생성하여
연결을 맺게 하면 SEND 처리 하는 부분에서 죽더라구요. 이는 당연히 클라측에서 받는 처리를 해놓지 않아
죽는구나 싶어서.. signal(SIGPIPE, SIG_IGN); 처리를 하였습니다.
그런데도 여전히 대량으로 쏘게되면 죽더라구요 .. 그런데 대량으로 쏠때만 죽고 시간을 조금 크게 주어서 소켓을 쏘게되면
죽는현상이 발생하지 않더라구요
참고로 send 함수의 마지막 플래그에는 아무런 옵션을 주지 않았습니다. MSG_NOSIGNAL 을 주어도 동일증상이구요
1. 시그날 처리를 하였는데도 send 후 프로세서가 죽는 원인이 무엇일까요?
2. send 후에 if(errno = EWOULDBLOCK)를 해서 검출되는지 printout 을 해보았는데 아무것도 안찍히더라구요..
그렇다면 send후에 죽는다는 소리가 아닌가요..??
하지만 대량으로 쏠때만 죽기 때문에 정확히 어디서 죽는지 디버깅이 쉽지 않네요..
도움부탁드립니다.
------------------------------------------------------------------------------------------------
처리 완료 하였습니다.
Forums:
댓글 달기