[Lldb-commits] [PATCH] D13727: Add task pool to LLDB

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 14 11:25:40 PDT 2015


clayborg added a comment.

Any std::async adoption will need to be able to deliver tasks as they complete via "TaskRunner<T>::WaitForNextCompletedTask()".

We had a previous example where 1000 items could be pushed onto a std::vector of tasks and then the code was doing:

  for (i=0; i<tasks.size(); ++i)
      tasks[i].wait();

This means that if the first of 1000 jobs took 100 seconds, but the other 999 took 0.1 seconds each, then it would stall the pipeline waiting for the first one to complete. I want to make sure we can do:

  while (auto future = task_runner. WaitForNextCompletedTask())
  {
  }

So we can process the items as needed as they complete. So as long as we can still do this with the implementation we use I will be happy.


http://reviews.llvm.org/D13727





More information about the lldb-commits mailing list