|
Blender V5.0
|
Classes | |
| class | HintReceiver |
| class | ReceiverIsolation |
Typedefs | |
| using | HintReceivers = RawStack<RawVector<FunctionRef<void()>, 0>, 0> |
Functions | |
| void | send_hint () |
Variables | |
| static HintReceivers | hint_receivers |
| using blender::lazy_threading::HintReceivers = RawStack<RawVector<FunctionRef<void()>, 0>, 0> |
This uses a "raw" stack and vector so that it can be destructed after Blender checks for memory leaks. A new list of receivers is created whenever an isolated region is entered to avoid deadlocks.
Definition at line 20 of file lazy_threading.cc.
| void blender::lazy_threading::send_hint | ( | ) |
Tell task schedulers on the current thread that it is about to start a long computation and that other waiting tasks should better be moved to another thread if possible.
Definition at line 28 of file lazy_threading.cc.
References hint_receivers.
Referenced by BLI_task_parallel_range(), blender::nodes::node_geo_mesh_primitive_ico_sphere_cc::create_ico_sphere_mesh(), blender::nodes::LazyFunctionForGroupNode::execute_impl(), blender::nodes::LazyFunctionForRepeatZone::initialize_execution_graph(), blender::threading::detail::memory_bandwidth_bound_task_impl(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_geo_exec(), blender::threading::parallel_deterministic_reduce(), blender::threading::detail::parallel_for_impl(), blender::threading::parallel_invoke(), and blender::threading::parallel_reduce().
|
thread_localstatic |
Definition at line 21 of file lazy_threading.cc.
Referenced by blender::lazy_threading::HintReceiver::HintReceiver(), blender::lazy_threading::ReceiverIsolation::ReceiverIsolation(), send_hint(), blender::lazy_threading::HintReceiver::~HintReceiver(), and blender::lazy_threading::ReceiverIsolation::~ReceiverIsolation().