51 #ifndef vtkThreadedTaskQueue_h 
   52 #define vtkThreadedTaskQueue_h 
   56 #include <condition_variable> 
   63 #if !defined(__WRAP__) 
   73 template <
typename R, 
typename... Args>
 
   78     int buffer_size = -1, 
int max_concurrent_tasks = -1);
 
   84   void Push(Args&&... args);
 
  115   std::unique_ptr<vtkThreadedTaskQueueInternals::TaskQueue<R> > Tasks;
 
  116   std::unique_ptr<vtkThreadedTaskQueueInternals::ResultQueue<R> > Results;
 
  119   std::unique_ptr<std::thread[]> Threads;
 
  122 template <
typename... Args>
 
  127     int buffer_size = -1, 
int max_concurrent_tasks = -1);
 
  133   void Push(Args&&... args);
 
  152   std::unique_ptr<vtkThreadedTaskQueueInternals::TaskQueue<void> > Tasks;
 
  154   std::condition_variable ResultsCV;
 
  155   std::mutex NextResultIdMutex;
 
  156   std::atomic<std::uint64_t> NextResultId;
 
  159   std::unique_ptr<std::thread[]> Threads;
 
  162 #include "vtkThreadedTaskQueue.txx" 
  164 #endif // !defined(__WRAP__)