Skip to content
Snippets Groups Projects
Commit 40fd2296 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Catched exceptions on the main thread to avoid unexpected failures.

Returned the thread with pthread_exit function.
parent 1379426a
No related branches found
No related tags found
No related merge requests found
......@@ -239,26 +239,30 @@ void *CComm::comm_thread(void *param)
while(!end)
{
wait_result=comm_dev->hard_wait_comm_event();
comm_dev->access_comm.enter();
if(wait_result==-1)
end=true;
else
{
if(wait_result==1)/* data has been received */
{
comm_dev->on_receive();
}
if(wait_result==2)
try{
comm_dev->access_comm.enter();
if(wait_result==-1)
end=true;
else
{
comm_dev->on_error();
if(wait_result==1)/* data has been received */
{
comm_dev->on_receive();
}
if(wait_result==2)
{
comm_dev->on_error();
}
}
comm_dev->access_comm.exit();
}catch(CException &e){
end=true;
}
comm_dev->access_comm.exit();
}
/* handle exceptions */
// throw CCommException(_HERE_,"Unexpected error while waiting for new data.\n",comm_dev->comm_id);
return NULL;
pthread_exit(NULL);
}
void CComm::on_receive(void)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment