gcc 4.4.3 c89Что делать, если ожидание окончания события
У меня есть цикл событий, который запускается в отдельном потоке.
Мой дизайн выглядит следующим образом, просто пример кода, который поможет объяснить.
Мне нужно как-то дождаться завершения инициализации, прежде чем я смогу позвонить на get_device_params.
Я проспал в течение 3 секунд перед вызовом get_device_params, но я действительно не хочу блокировать.
Большое спасибо за любые предложения,
void* process_events(void *data)
{
switch(event_type)
{
case EVT_INITIALIZED:
/* Device is now initialized */
break;
}
}
int main(void)
{
/* Create and start thread and process incoming events */
process_events();
/* Initialize device */
initialize_device();
/* Get device parameters */
/* However, I cannot run this code until initialization is complete */
get_device_params();
return 0;
}
Почему вы не вызываете get_device_params() в цикле событий события EVT_INITIALIZED? –
На какой платформе это работает? –
@Paul. Существует некоторая дополнительная обработка, которая должна быть выполнена. Поэтому нельзя вызывать событие EVT_INITIALIZED. – ant2009