if (nullptr != d) {
d->work_callback_();
if (d->after_work_callback_) {
- g_idle_add(AfterWorkCallback<void>, d);
+ if (!g_idle_add(AfterWorkCallback<void>, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
}
return nullptr;
void TaskQueue::Async(const std::function<void()>& work) {
QueueData<void>* d = new QueueData<void>();
d->after_work_callback_ = work;
- g_idle_add(AfterWorkCallback<void>, d);
+ if (!g_idle_add(AfterWorkCallback<void>, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
} // namespace common
QueueData<T>* d = static_cast<QueueData<T>*>(data);
if (nullptr != d) {
d->work_callback_(d->data_);
- g_idle_add(AfterWorkCallback<T>, d);
+ if (!g_idle_add(AfterWorkCallback<T>, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
return nullptr;
}
QueueData<T>* d = new QueueData<T>();
d->after_work_callback_ = work;
d->data_ = data;
- g_idle_add(AfterWorkCallback<T>, d);
+ if (!g_idle_add(AfterWorkCallback<T>, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
} // namespace common