65 return tbb::is_current_task_group_canceling();
73 tbb::global_control *TaskScheduler::global_control =
nullptr;
86 VLOG(1) <<
"Overriding number of TBB threads to " <<
num_threads <<
".";
87 global_control =
new tbb::global_control(tbb::global_control::max_allowed_parallelism,
101 delete global_control;
102 global_control =
nullptr;
234 int done =
queue.size();
thread_condition_variable num_cond
void num_decrease(int done)
void push(TaskRunFunction &&run, bool front=false)
thread_condition_variable queue_cond
list< TaskRunFunction > queue
bool thread_wait_pop(TaskRunFunction &task)
static void free_memory()
static void init(int num_threads=0)
static thread_mutex mutex
static int active_num_threads
#define CCL_NAMESPACE_END
struct blender::compositor::@172::@174 task
string full_report() const
void push(TaskRunFunction &&task)
tbb::task_group tbb_group
void wait_work(Summary *stats=NULL)
CCL_NAMESPACE_BEGIN string string_printf(const char *format,...)
int system_cpu_thread_count()
function< void(void)> TaskRunFunction
std::unique_lock< std::mutex > thread_scoped_lock
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex
CCL_NAMESPACE_BEGIN double time_dt()