C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35520] Non-block socket이 아직 동작중일때, 강제로 수행은 중지시키는 방법은?
김영민 [youngmin] 934 읽음    2004-06-10 12:04
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();
식으로 연속으로 호출하니까.. 안전하게 죽는군요.. 왜그런지는 몰라도..*^^*

+ -

관련 글 리스트
35520 Non-block socket이 아직 동작중일때, 강제로 수행은 중지시키는 방법은? 김영민 934 2004/06/10
35549     Re:Non-block socket이 아직 동작중일때, 강제로 수행은 중지시키는 방법은? 박지훈.임프 1452 2004/06/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.