summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/message_strobe_random_impl.cc
diff options
context:
space:
mode:
authorMarcus Müller <mueller@kit.edu>2018-02-20 11:22:14 +0100
committerMarcus Müller <marcus@hostalia.de>2018-02-23 19:06:50 +0100
commit97f0d1cecf4a8cb82e8e16e4dfcac0589c5b56c7 (patch)
treee0ad2aba49c4ebcb8a8bbf9f6b65bc8a953c95e0 /gr-blocks/lib/message_strobe_random_impl.cc
parent2fc414578985b59c5bfbb15103f3c3677a1c6fdc (diff)
blocks: remove unnecessary call to pmt::intern at runtime
typical usage: message_port_pub(pmt::mp("out_port"), …) which is bad, as it implies hashing of a string, allocation of memory, deallocation, finding the hashed string in the table of interned strings and returning a unique pointer (which for reasons of PMT awesomeness isn't even unique) to the interned port name. Replacing all these port name ad hoc ::mp() calls by reusing one, private, port name member.
Diffstat (limited to 'gr-blocks/lib/message_strobe_random_impl.cc')
-rw-r--r--gr-blocks/lib/message_strobe_random_impl.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/gr-blocks/lib/message_strobe_random_impl.cc b/gr-blocks/lib/message_strobe_random_impl.cc
index c62aad1c7a..ab9422717c 100644
--- a/gr-blocks/lib/message_strobe_random_impl.cc
+++ b/gr-blocks/lib/message_strobe_random_impl.cc
@@ -45,6 +45,7 @@ namespace gr {
(new message_strobe_random_impl(msg, dist, mean_ms, std_ms));
}
+
message_strobe_random_impl::message_strobe_random_impl(pmt::pmt_t msg, message_strobe_random_distribution_t dist, float mean_ms, float std_ms)
: block("message_strobe_random",
io_signature::make(0, 0, 0),
@@ -54,13 +55,14 @@ namespace gr {
d_std_ms(std_ms),
d_dist(dist),
d_msg(msg),
- d_rng()
+ d_rng(),
+ d_port(pmt::mp("strobe"))
{
// allocate RNGs
update_dist();
// set up ports
- message_port_register_out(pmt::mp("strobe"));
+ message_port_register_out(d_port);
d_thread = boost::shared_ptr<gr::thread::thread>
(new gr::thread::thread(boost::bind(&message_strobe_random_impl::run, this)));
@@ -113,7 +115,7 @@ namespace gr {
return;
}
- message_port_pub(pmt::mp("strobe"), d_msg);
+ message_port_pub(d_port, d_msg);
}
}