세그멘테이션 오류가 나는 이유를 모르겠어요..
글쓴이: 해봐 / 작성시간: 금, 2004/10/22 - 9:41오후
일단, main 을 보면은..
class Test : public Runnable
{
public:
void run()
{
for(int i = 0 ; i < 10 ; i++)
{
TRACE1("aaaaaaaaa");
sleep(1);
}
}
};
int main()
{
Executor* executor = new PooledExecutor();
executor->init(NULL);
Test test;
executor->execute(&test);
//
// while(true)
// sleep(1000);
return 0;
}
그리고, PooledExecutor를 보면,,..(실제 pooled는 아직 구현안한상태)
class WorkerThread
{
private:
Runnable* m_prunnable;
pthread_t* m_pthread;
static void* do_work(void* arg)
{
}
public:
WorkerThread(Runnable* runnable)
:m_prunnable(runnable)
{
}
void start()
{
int pthread_create_ret = pthread_create(this->m_pthread, NULL, WorkerThread::do_work, this);
printf("%d\n", pthread_create_ret);
if(pthread_create_ret != 0)
throw pthread_create_ret;
}
};
void PooledExecutor::init(void* arg)
{
}
void PooledExecutor::close(void* arg)
{
}
void PooledExecutor::execute(Runnable* arg)
{
WorkerThread worker(arg);
worker.start();
}
여기서 thread creation 시 에러가 발생합니다. 왜 그럴까요..
pthread_create의 리턴도 안찍힙니다. 왜 그럴까요..
단, void start() 부분에서 create thread 부분을 없애고 아무 루틴이나 넣으면 잘 돌아가요..
[/code]
Forums:


m_pthread를 초기화하지 않아서 그런 것 같은데요.
m_pthread를 초기화하지 않아서 그런 것 같은데요.
[code:1] pthread_t m_thread;....
pthread_t m_thread; .... int pthread_create_ret = pthread_create(&(this->m_thread), NULL, WorkerThread::do_work, this);헉스.. 완전,,, 질문같지 않은 질문 이었네여..,, 하여튼 감사합니다
헉스.. 완전,,, 질문같지 않은 질문 이었네여..,, 하여튼 감사합니다.
댓글 달기