| 333 | } |
| 334 | |
| 335 | void *CCECAdapterMessageQueue::Process(void) |
| 336 | { |
| 337 | CCECAdapterMessageQueueEntry *message(NULL); |
| 338 | while (!IsStopped()) |
| 339 | { |
| 340 | /* wait for a new message */ |
| 341 | if (m_writeQueue.Pop(message, MESSAGE_QUEUE_SIGNAL_WAIT_TIME) && message) |
| 342 | { |
| 343 | /* write this message */ |
| 344 | { |
| 345 | CLockObject lock(m_mutex); |
| 346 | m_com->WriteToDevice(message->m_message); |
| 347 | } |
| 348 | if (message->m_message->state == ADAPTER_MESSAGE_STATE_ERROR || |
| 349 | message->m_message->Message() == MSGCODE_START_BOOTLOADER) |
| 350 | { |
| 351 | message->Signal(); |
| 352 | Clear(); |
| 353 | break; |
| 354 | } |
| 355 | } |
| 356 | |
| 357 | CheckTimedOutMessages(); |
| 358 | } |
| 359 | return NULL; |
| 360 | } |
| 361 | |
| 362 | void CCECAdapterMessageQueue::CheckTimedOutMessages(void) |
| 363 | { |
nothing calls this directly
no test coverage detected