Go to the documentation of this file.
18 #ifndef viskores_filter_TaskQueue_h
19 #define viskores_filter_TaskQueue_h
37 std::unique_lock<std::mutex> lock(this->
Lock);
38 this->
Queue.push(item);
43 std::unique_lock<std::mutex> lock(this->
Lock);
44 return !(this->
Queue.empty());
49 std::unique_lock<std::mutex> lock(this->
Lock);
50 if (this->
Queue.empty())
53 item = this->
Queue.front();
61 std::unique_lock<std::mutex> lock(this->
Lock);
62 if (!this->
Queue.empty())
64 item = this->
Queue.front();
74 std::unique_lock<std::mutex> lock(this->
Lock);
97 this->
Push(std::make_pair(idx++, std::move(ds)));
109 std::vector<viskores::cont::DataSet> dataSets(
static_cast<std::size_t
>(num));
112 std::pair<viskores::Id, viskores::cont::DataSet> task;
115 dataSets[
static_cast<std::size_t
>(task.first)] = std::move(task.second);
DataSetQueue()
Definition: TaskQueue.h:100
viskores::cont::PartitionedDataSet Get()
Definition: TaskQueue.h:102
std::mutex Lock
Definition: TaskQueue.h:79
viskores::Id Length()
Definition: TaskQueue.h:72
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
Groups connected points that have the same field value.
Definition: Atomic.h:27
Definition: TaskQueue.h:90
void AppendPartitions(const std::vector< viskores::cont::DataSet > &partitions)
Append the DataSet vector partitions to the end of list of partitions.
std::queue< T > Queue
Definition: TaskQueue.h:80
Comprises a set of viskores::cont::DataSet objects.
Definition: PartitionedDataSet.h:34
bool HasTasks()
Definition: TaskQueue.h:41
TaskQueue & operator=(const TaskQueue &rhs)=delete
T Pop()
Definition: TaskQueue.h:58
void Push(T &&item)
Definition: TaskQueue.h:35
bool GetTask(T &item)
Definition: TaskQueue.h:47
DataSetQueue(const viskores::cont::PartitionedDataSet &input)
Definition: TaskQueue.h:93
Definition: TaskQueue.h:29