Merge branch 'tizen_4.0' into tizen_5.0 32/245132/1
authorPiotr Kosko <p.kosko@samsung.com>
Fri, 2 Oct 2020 11:07:26 +0000 (13:07 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Fri, 2 Oct 2020 11:22:01 +0000 (13:22 +0200)
Change-Id: Ic5b2736ab945e3c39cea6f32aae8d5532dd74558

1  2 
src/common/task-queue.cpp
src/common/task-queue.h

@@@ -62,16 -61,13 +62,20 @@@ void TaskQueue::DeleteJobs() 
    }
  }
  
 -void TaskQueue::Async(const std::function<void()>& work) {
 +void TaskQueue::Stop() {
 +  LoggerI("Stopping TaskQueue workers");
 +  queue_worker_.stop();
 +  async_worker_.stop();
 +}
 +
 +void TaskQueue::ScheduleWorkInMainThread(const std::function<void()>& work) {
    QueueData<void>* d = new QueueData<void>();
 -  d->after_work_callback_ = work;
 -  if (!g_idle_add(AfterWorkCallback<void>, d)) {
 +  d->work_callback_ = work;
-   g_idle_add(WorkCallback<void>, d);
++
++  if (!g_idle_add(WorkCallback<void>, d)) {
+     LoggerE("g_idle_add failed");
+     delete d;
+   }
  }
  
  }  // namespace common
@@@ -178,17 -142,13 +178,21 @@@ void TaskQueue::Queue(const std::functi
  template <class T>
  void TaskQueue::Async(const std::function<void(const std::shared_ptr<T>&)>& work,
                        const std::shared_ptr<T>& data) {
 +  auto do_work = [data, work]() { work(data); };
 +  this->async_worker_.add_job(do_work);
 +}
 +
 +template <class T>
 +void TaskQueue::ScheduleWorkInMainThread(const std::function<void(const std::shared_ptr<T>&)>& work,
 +                                         const std::shared_ptr<T>& data) {
    QueueData<T>* d = new QueueData<T>();
 -  d->after_work_callback_ = work;
 +  d->work_callback_ = work;
    d->data_ = data;
-   g_idle_add(WorkCallback<T>, d);
 -  if (!g_idle_add(AfterWorkCallback<T>, d)) {
++
++  if (!g_idle_add(WorkCallback<T>, d)) {
+     LoggerE("g_idle_add failed");
+     delete d;
+   }
  }
  
  }  // namespace common