OS: Linux kernel 2.4
CC: gcc 및 g++
제가 쓰레드 프로그래밍이 처음이라 개념 및 용어에 미숙합니다.
이점 양해해 주시고 읽어주세요.
일단 C++로 작성중인 프로그램인데 다른 라이브러리를 쓰고
있습니다. 근데 이 라이브러리는 실행시 쓰레드를 몇개 만드는데
가끔가다 비정상적인 입력을 받으면 멈춰버리더라구요.
아마도 내부적으로 mutex를 풀지 않아서(?) 그런것 같습니다.
제 프로그램은 이 라이브러리의 인터페이스정도 되거든요.
그래서 잘못된 입력이 못들어 가게 원천봉쇄같은 건 못하구요.
다만 문제가 생기면 뒤치닥거리나 하는 정도예요.
근데 이건 문제가 좀 심각해서 종료를 시킬수가 없습니다.
현재는 X윈도라서 약간의 키이벤트를 받아 (F12) 바로
SIGKILL로 황천행으로 보내는게 고작입니다. SIGTERM도
exit함수도 안먹더군요.
SIGKILL같은 극단적인 방법이 아닌 다른 방법으로 프로그램
을 안전하게 종료시키던지 아니면 문제가 생긴 쓰레드만
어떻게 처리하던지 죽이던지 할 수 없을까요?
리눅스 내부적으로 쓰레드는 거의 독립적인 프로세서인 것
같던데. top프로그램같은 걸로보면 제 프로그램 이름이 여러개
떠있거든요. pid를 알아내서 죽인다거나 할 수도 있을것 같은
데요...
아시는 분은 좀 조언을 부탁드립니다.
(음 근데 퀀커러에서는 글보내기가 안되네요. 흑흑...)