|
Program에서 Thread를 10개정도 만들었습니다.
각 Thread 안에는 Socket을 Non-blocking으로 동작하게 햇습니다.
연결이 안되면(Active==false) 30초정도 이후에 다시 Open합니다.
그 결과치는 Main program으로 보내게 합니다.
여기서 한가지 문제가 있어서 질문드립니다.
처음 Thread를 10개만들면 각 Thread에서 통신을 연결할려고하고, 연결/비연결의 정보를 얻을 수 있습니다.
그런데, 이 상황에서 Threads를 전부 Terminate() 시켰습니다.
그리고 다시 만들었습니다. 여기까진 문제가 없는듯 한데요..
결론인즉, Program을 닫을려고 하거나, 혹은 진행중에 NULL에 접근한다는 Error가 나오는 군요.
Debug에서 봐도 해당 Thread는 죽었는데..
혹시, Socket이 남아있어서 그런가요? 무슨 Buffer 같은곳에 뭔가가 아직 존재하는건가요?
어떻게 하면 Thread 죽일때, 안에서 생성한 Socket도 안전하게 종료하고 다시 Thread를 띄울 수 있을까요?
그럼.
수정>
pthread->Suspend();
pthread->Terminate();
pthread->Resume();
식으로 연속으로 호출하니까.. 안전하게 죽는군요.. 왜그런지는 몰라도..*^^*
|