From: Piotr Kosko Date: Fri, 2 Oct 2020 11:07:26 +0000 (+0200) Subject: Merge branch 'tizen_4.0' into tizen_5.0 X-Git-Tag: submit/tizen/20201005.050422~1^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=83350e983b2aa86175c4bb20e907ddf982465ffe;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git Merge branch 'tizen_4.0' into tizen_5.0 Change-Id: Ic5b2736ab945e3c39cea6f32aae8d5532dd74558 --- 83350e983b2aa86175c4bb20e907ddf982465ffe diff --cc src/common/task-queue.cpp index fe551a5e,f5202107..c743a781 --- a/src/common/task-queue.cpp +++ b/src/common/task-queue.cpp @@@ -62,16 -61,13 +62,20 @@@ void TaskQueue::DeleteJobs() } } -void TaskQueue::Async(const std::function& work) { +void TaskQueue::Stop() { + LoggerI("Stopping TaskQueue workers"); + queue_worker_.stop(); + async_worker_.stop(); +} + +void TaskQueue::ScheduleWorkInMainThread(const std::function& work) { QueueData* d = new QueueData(); - d->after_work_callback_ = work; - if (!g_idle_add(AfterWorkCallback, d)) { + d->work_callback_ = work; - g_idle_add(WorkCallback, d); ++ ++ if (!g_idle_add(WorkCallback, d)) { + LoggerE("g_idle_add failed"); + delete d; + } } } // namespace common diff --cc src/common/task-queue.h index c44cc09c,94a97af4..1fe88797 --- a/src/common/task-queue.h +++ b/src/common/task-queue.h @@@ -178,17 -142,13 +178,21 @@@ void TaskQueue::Queue(const std::functi template void TaskQueue::Async(const std::function&)>& work, const std::shared_ptr& data) { + auto do_work = [data, work]() { work(data); }; + this->async_worker_.add_job(do_work); +} + +template +void TaskQueue::ScheduleWorkInMainThread(const std::function&)>& work, + const std::shared_ptr& data) { QueueData* d = new QueueData(); - d->after_work_callback_ = work; + d->work_callback_ = work; d->data_ = data; - g_idle_add(WorkCallback, d); - if (!g_idle_add(AfterWorkCallback, d)) { ++ ++ if (!g_idle_add(WorkCallback, d)) { + LoggerE("g_idle_add failed"); + delete d; + } } } // namespace common