0

scoped_lock を使用して 2 つのミューテックスをロックした後、キューから抽出されたタスクを実行する必要があります。問題は、タスクをキューから別のタスクにスワップしてから実行することです。これまでのところ、これが私の出発点です

std::packaged_task<void(Job)> task;

                {
                    std::scoped_lock scopedLock(w_mutex, r_mutex);
                    const std::packaged_task<void(Job)>& top_task = waitingJobsQueue.top();
                    waitingJobsQueue.pop();
                    runningJobsQueue.push(task);
                }

task();

しかし、タスクを変数に保存して後で実行することはできません。

4

0 に答える 0