私はRunnableクラスを持っています。次の関数では、新しいスレッドを開始するために使用します。boost :: threadセグメンテーションエラー
start()
{
status_ = RUNNING;
mythread_ = boost::thread(boost::ref(*this)); // Line 2
}
私はRunnableから派生したコントローラクラスを持っています。 と私は私が使用
、コントローラ内の機能を起動し、スタート()関数ので
を使用してコントローラのためのスレッドを作成したい:
controller_->start()
新しいスレッドを作成します。
しかし、最終的にライン2.
で間違ってされている可能性がどのような任意のアイデアを、障害をセグメンテーションするためにつながりますか?
'controller_'が有効なオブジェクトで、クラスに' operator()() 'があり、実際のコードに欠落している戻り値の型とセミコロンが含まれていると、何か問題はありません。 –
コントローラが有効なポインタでない可能性があります – pezcode