pthread_create에 관한 문의드립니다.
안녕하새요.
===== 프로그램
if(pthread_create(&m_threadRecv, NULL, &recv_thread, (void *)this) != 0) // 이때 문제가 생김----
{
printf("pthread_create() failed\n");
ret = -1;
}
else
{
while(m_bRun)
{
if(m_ulNoSignal > DID_MAX_NO_SIGNAL)
{
m_bRun = false;
printf("no signal = %d\n", m_ulNoSignal);
break;
}
else
{
}
sleep(1);
m_ulNoSignal++;
}
}
================================================================
=======스레드 호출
int CDidClient::RecvThread() // 스레드 호출
================================================================
====== Class 선언
protected:
bool m_bRun;
unsigned int m_ulNoSignal;
pthread_t m_threadRecv;
===============================================================
이와 같이 프로그램을 작성하였습니다.
Make 시 에러는 없습니다.
그런데, pthread_create()만 삽입하여 make하면 에러는 없는데, 프로그램 실행 시 "SEGV"가 출력이 됩니다.
왜 그럴까요? 조언 부탁드립니다.
댓글 달기