Hi, i have a very weird fatal exception happening very rarely on my application (compiled under gcc - Ubuntu linux)
it seems that this this function :
Code:
bool GetConnect( ) {return m_Connected;}
causes a Segmentation Fault sometimes (not all the times)
No the instance of the class is not deleted when i call that function.
I tried declaring m_Connected as volatile bool m_Connected but still the error happens.
several different threads also access the function that calls this function.
Code:
bool CPDC :: CBoolExpr(Clients *client)
{
if(!client)
{
return false;
}
if(client->m_Deleting) // before we delete our instance of Clients* we set this flag. the instance is deleted 240 seconds later.
{
return false;
}
if( !client->m_Socket )
{
return false;
}
cout << "CBE4" << endl;
if( !client->m_Socket->GetConnected() )
{
return false;
}
cout << "CBE5" << endl;
if(client->m_Socket->HasError() )
{
return false;
}
cout << "CBEE" << endl;
return true;
}
it always crashes when it outputs CBE4.
to make sure that another thread doesnt crash the application i also tried creating the other threads in completely different timings. It crashes every time on the same line. Although it makes no sense at all..
Did i miss anything?