summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/hier_block2_detail.cc
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-07-15 15:15:41 -0400
committerTom Rondeau <tom@trondeau.com>2013-07-17 18:04:15 -0400
commit2a0b62dd7d73ad595d60fe2d2ede96befe9c65e6 (patch)
treebad9364f4ac617d35e6669aacc4e0153c81fe722 /gnuradio-runtime/lib/hier_block2_detail.cc
parentb2cfe7d00a5c89670d16fd491af51ea3d8a2373e (diff)
runtime: added support for setting thread affinity to all blocks under a hier_block2.
grc: added field to all blocks to set the thread affinity to a list of processors. docs: updated docs on thread affinity for new features. Conflicts: grc/base/Block.py grc/python/flow_graph.tmpl
Diffstat (limited to 'gnuradio-runtime/lib/hier_block2_detail.cc')
-rw-r--r--gnuradio-runtime/lib/hier_block2_detail.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnuradio-runtime/lib/hier_block2_detail.cc b/gnuradio-runtime/lib/hier_block2_detail.cc
index 83207d978c..85b848101c 100644
--- a/gnuradio-runtime/lib/hier_block2_detail.cc
+++ b/gnuradio-runtime/lib/hier_block2_detail.cc
@@ -654,4 +654,29 @@ namespace gr {
d_owner->unlock();
}
+ void
+ hier_block2_detail::set_processor_affinity(const std::vector<int> &mask)
+ {
+ basic_block_vector_t tmp = d_fg->calc_used_blocks();
+ for(basic_block_viter_t p = tmp.begin(); p != tmp.end(); p++) {
+ (*p)->set_processor_affinity(mask);
+ }
+ }
+
+ void
+ hier_block2_detail::unset_processor_affinity()
+ {
+ basic_block_vector_t tmp = d_fg->calc_used_blocks();
+ for(basic_block_viter_t p = tmp.begin(); p != tmp.end(); p++) {
+ (*p)->unset_processor_affinity();
+ }
+ }
+
+ std::vector<int>
+ hier_block2_detail::processor_affinity()
+ {
+ basic_block_vector_t tmp = d_fg->calc_used_blocks();
+ return tmp[0]->processor_affinity();
+ }
+
} /* namespace gr */