|
일단 쓰레드에서 동적으로 클라이언트 소켓을 만들었습니다.
그리고 쓰레드 외부에서 타이머를 두어 필요할때, 쓰레드에서 읽기/쓰기를 하도록 하였습니다.
// 쓰리드 파트
while( 1 ) {
읽기 또는 쓰기....
suspended = true;
}
이하에 읽기/쓰기 관련 서브루틴은 모두 쓰레드에 존재합니다.
물론 연결/끊기 동작도 쓰레드에서 수행하도록 하였습니다.
특히 끊기는 read/write 시 에러가 발생하면 catch 해서 연결을 끊도록
했습니다.
// 쓰레드 외부 타이머 파트에서는 읽기/쓰기할 조건만 판단합니다.
그래서 전역변수에 설정만 하고 쓰레드를 resume() 시키는 역할만 합니다.
**** 문제는 정상적인 상황에서는 통신을 무난히 수행합니다.
그런데, 랜선을 뽑아 쓰기에러를 유도하면
Disconnect 도중 쓰레드가 죽어버립니다.
왜일까요????
쓰레드의 Excute() 내부 while 루틴에서 카운터를 해보니 쓰레드가 전혀 진행이
안되고 있어요, 물론 타이머는 정상이고...
조언 부탁드립니다.
|