diff options
author | Marcus Müller <mueller@kit.edu> | 2018-02-20 11:33:33 +0100 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2018-02-23 19:06:50 +0100 |
commit | 28401b7a01d9e6f25c6057f7b9dc07c8e568ff60 (patch) | |
tree | 0b38941011f873953c15987688460ef1e8e98c49 /gr-zeromq/lib | |
parent | 97f0d1cecf4a8cb82e8e16e4dfcac0589c5b56c7 (diff) |
zeromq: 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-zeromq/lib')
-rw-r--r-- | gr-zeromq/lib/pull_msg_source_impl.cc | 7 | ||||
-rw-r--r-- | gr-zeromq/lib/pull_msg_source_impl.h | 1 | ||||
-rw-r--r-- | gr-zeromq/lib/req_msg_source_impl.cc | 7 | ||||
-rw-r--r-- | gr-zeromq/lib/req_msg_source_impl.h | 1 | ||||
-rw-r--r-- | gr-zeromq/lib/sub_msg_source_impl.cc | 7 | ||||
-rw-r--r-- | gr-zeromq/lib/sub_msg_source_impl.h | 1 |
6 files changed, 15 insertions, 9 deletions
diff --git a/gr-zeromq/lib/pull_msg_source_impl.cc b/gr-zeromq/lib/pull_msg_source_impl.cc index bd84c9f31a..7e2efff570 100644 --- a/gr-zeromq/lib/pull_msg_source_impl.cc +++ b/gr-zeromq/lib/pull_msg_source_impl.cc @@ -44,7 +44,8 @@ namespace gr { : gr::block("pull_msg_source", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), - d_timeout(timeout) + d_timeout(timeout), + d_port(pmt::mp("out")) { int major, minor, patch; zmq::version (&major, &minor, &patch); @@ -60,7 +61,7 @@ namespace gr { d_socket->setsockopt(ZMQ_LINGER, &time, sizeof(time)); d_socket->connect (address); - message_port_register_out(pmt::mp("out")); + message_port_register_out(d_port); } pull_msg_source_impl::~pull_msg_source_impl() @@ -101,7 +102,7 @@ namespace gr { std::string buf(static_cast<char*>(msg.data()), msg.size()); std::stringbuf sb(buf); pmt::pmt_t m = pmt::deserialize(sb); - message_port_pub(pmt::mp("out"), m); + message_port_pub(d_port, m); } else { boost::this_thread::sleep(boost::posix_time::microseconds(100)); diff --git a/gr-zeromq/lib/pull_msg_source_impl.h b/gr-zeromq/lib/pull_msg_source_impl.h index 6d8791d613..972dab5aff 100644 --- a/gr-zeromq/lib/pull_msg_source_impl.h +++ b/gr-zeromq/lib/pull_msg_source_impl.h @@ -36,6 +36,7 @@ namespace gr { zmq::context_t *d_context; zmq::socket_t *d_socket; boost::thread *d_thread; + const pmt::pmt_t d_port; void readloop(); diff --git a/gr-zeromq/lib/req_msg_source_impl.cc b/gr-zeromq/lib/req_msg_source_impl.cc index 7d9f0f38c9..4cfd03f686 100644 --- a/gr-zeromq/lib/req_msg_source_impl.cc +++ b/gr-zeromq/lib/req_msg_source_impl.cc @@ -44,7 +44,8 @@ namespace gr { : gr::block("req_msg_source", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), - d_timeout(timeout) + d_timeout(timeout), + d_port(pmt::mp("out")) { int major, minor, patch; zmq::version(&major, &minor, &patch); @@ -60,7 +61,7 @@ namespace gr { d_socket->setsockopt(ZMQ_LINGER, &time, sizeof(time)); d_socket->connect (address); - message_port_register_out(pmt::mp("out")); + message_port_register_out(d_port); } req_msg_source_impl::~req_msg_source_impl() @@ -113,7 +114,7 @@ namespace gr { std::string buf(static_cast<char*>(msg.data()), msg.size()); std::stringbuf sb(buf); pmt::pmt_t m = pmt::deserialize(sb); - message_port_pub(pmt::mp("out"), m); + message_port_pub(d_port, m); } else { boost::this_thread::sleep(boost::posix_time::microseconds(100)); diff --git a/gr-zeromq/lib/req_msg_source_impl.h b/gr-zeromq/lib/req_msg_source_impl.h index 5835dd4b4d..322ce4cf51 100644 --- a/gr-zeromq/lib/req_msg_source_impl.h +++ b/gr-zeromq/lib/req_msg_source_impl.h @@ -36,6 +36,7 @@ namespace gr { zmq::context_t *d_context; zmq::socket_t *d_socket; boost::thread *d_thread; + const pmt::pmt_t d_port; void readloop(); diff --git a/gr-zeromq/lib/sub_msg_source_impl.cc b/gr-zeromq/lib/sub_msg_source_impl.cc index 4a44442e62..8ed2420293 100644 --- a/gr-zeromq/lib/sub_msg_source_impl.cc +++ b/gr-zeromq/lib/sub_msg_source_impl.cc @@ -44,7 +44,8 @@ namespace gr { : gr::block("sub_msg_source", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), - d_timeout(timeout) + d_timeout(timeout), + d_port(pmt::mp("out")) { int major, minor, patch; zmq::version(&major, &minor, &patch); @@ -59,7 +60,7 @@ namespace gr { d_socket->setsockopt(ZMQ_SUBSCRIBE, "", 0); d_socket->connect (address); - message_port_register_out(pmt::mp("out")); + message_port_register_out(d_port); } sub_msg_source_impl::~sub_msg_source_impl() @@ -101,7 +102,7 @@ namespace gr { std::stringbuf sb(buf); pmt::pmt_t m = pmt::deserialize(sb); - message_port_pub(pmt::mp("out"), m); + message_port_pub(d_port, m); } else { boost::this_thread::sleep(boost::posix_time::microseconds(100)); } diff --git a/gr-zeromq/lib/sub_msg_source_impl.h b/gr-zeromq/lib/sub_msg_source_impl.h index 09bede9cb5..4cf85d10ba 100644 --- a/gr-zeromq/lib/sub_msg_source_impl.h +++ b/gr-zeromq/lib/sub_msg_source_impl.h @@ -36,6 +36,7 @@ namespace gr { zmq::context_t *d_context; zmq::socket_t *d_socket; boost::thread *d_thread; + const pmt::pmt_t d_port; void readloop(); |