Lines Matching refs:qos
18 #include "qos.h"
35 void InsertTask(void* task, int qos)
39 if (!ffrt::FFRTFacade::GetSchedInstance()->InsertNode(node, qos)) {
46 bool CPUWorkerManager::IncWorker(const QoS& qos)
48 QoS localQos = qos;
51 FFRT_LOGE("IncWorker qos:%d is invaild", workerQos);
69 FFRT_LOGE("qos:%d worker insert fail:%d", workerQos, result.second);
80 int CPUWorkerManager::GetTaskCount(const QoS& qos)
82 auto& sched = FFRTFacade::GetSchedInstance()->GetScheduler(qos);
86 int CPUWorkerManager::GetWorkerCount(const QoS& qos)
88 std::shared_lock<std::shared_mutex> lck(groupCtl[qos()].tgMutex);
89 return groupCtl[qos()].threads.size();
155 void CPUWorkerManager::NotifyLocalTaskAdded(const QoS& qos)
157 if (stealWorkers[qos()].load(std::memory_order_relaxed) == 0) {
158 monitor->Notify(qos, TaskNotifyType::TASK_LOCAL);
170 int qos = static_cast<int>(thread->GetQos());
173 std::unique_lock<std::shared_mutex> lck(groupCtl[qos].tgMutex);
176 auto worker = std::move(groupCtl[qos].threads[thread]);
177 int ret = groupCtl[qos].threads.erase(thread);
179 FFRT_LOGE("erase qos[%d] thread failed, %d elements removed", qos, ret);
181 WorkerLeaveTg(qos, pid);
194 void CPUWorkerManager::NotifyTaskAdded(const QoS& qos)
196 monitor->Notify(qos, TaskNotifyType::TASK_ADDED);
199 void CPUWorkerManager::NotifyWorkers(const QoS& qos, int number)
201 monitor->NotifyWorkers(qos, number);
209 void CPUWorkerManager::WorkerJoinTg(const QoS& qos, pid_t pid)
211 std::shared_lock<std::shared_mutex> lock(groupCtl[qos()].tgMutex);
212 if (qos == qos_user_interactive) {
216 auto& tgwrap = groupCtl[qos()];
228 void CPUWorkerManager::WorkerLeaveTg(const QoS& qos, pid_t pid)
230 if (qos == qos_user_interactive) {
234 auto& tgwrap = groupCtl[qos()];