세그멘테이션 오류가 나는 이유를 모르겠어요..

해봐의 이미지

일단, 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]

doldori의 이미지

m_pthread를 초기화하지 않아서 그런 것 같은데요.

markboy의 이미지

    pthread_t m_thread;
....
    int pthread_create_ret = pthread_create(&(this->m_thread), NULL, WorkerThread::do_work, this); 
해봐의 이미지

헉스.. 완전,,, 질문같지 않은 질문 이었네여..,, 하여튼 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.