我正在尝试在C++中设置一个基本的线程类,但是当我尝试创建一个线程时,我遇到了一个seg错误.以下是GDB报告的内容:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000401b68 in StartThread (pFunction=
0x401ad2 <FindPrimesThread(void*)>, pLimit=5000000) at Thread.cpp:35
35 state->mLimit = pLimit;
Run Code Online (Sandbox Code Playgroud)
当我试着像这样打电话:
ThreadState *primesState = StartThread(FindPrimesThread, 5000000);
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
Thread.hpp
#ifndef THREAD_HPP
#define THREAD_HPP
#include <pthread.h>
#include "Types.hpp"
typedef struct {
ulong mLimit; // Upper limit of numbers to test
int mStarted; // True if the thread started successfully
int mExitCode; // Thread exit code
pthread_t mThreadId; // Thread ID
} ThreadState;
// Defines a type named ThreadFunction which is a pointer …Run Code Online (Sandbox Code Playgroud)