void WorkerThread::executeEventTask(ATask* task, bool exec) { EventTask *eventTask = reinterpret_cast<EventTask*>(task); if (eventTask) { try { // call every subscriber. if (exec) { eventTask->_callback(); } EventTask::returnToPool(eventTask); } catch (const std::exception&) { EventTask::returnToPool(eventTask); throw; } } else { CRITICAL("Cant reinterpret_cast an EventTask"); } }