【发布时间】:2011-03-27 06:29:41
【问题描述】:
我在电视的linux系统上运行我的游戏,当我退出游戏时,系统会崩溃。
从输出日志中,我知道我的游戏一直很正常,但是系统崩溃了。
主要功能如下:
int main(int argc, char** argv)
{
......
SDL_Quit();
printf("Log: exit end. \n);// it's printed on console
return 0;
}
我可以找到关于 Log: exit end 的输出日志。所以游戏已经退出了吧?
我发现游戏退出只会在创建线程后崩溃。
这是下面线程中的运行函数:
while ( pThread->m_running )
{
string str;
string cmdStr;
if ( pThread->GetSendMsg(str, cmdStr) )
{
string returnStr = Connection::DealHttpSendMsg( str, cmdStr );
pThread->AddReturnMsg( returnStr );
haveData = true;
}
else
{
SDL_Delay(100);
haveData = false;
}
}
我的问题是,如果m_running 始终为真。所以当我退出游戏时,线程仍在运行。会不会导致崩溃?
【问题讨论】:
标签: linux multithreading crash