aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2019-12-23 14:26:13 +0000
committerMarcus Müller <marcus@hostalia.de>2020-02-15 15:14:00 +0100
commit9c96244fe6598f6284ef3393b52563064edd65ce (patch)
tree7c091d7e39137d445c9040d6c6cb9a978a470297
parentdigital/map_bb: Fix buffer overflow (diff)
downloadgnuradio-9c96244fe6598f6284ef3393b52563064edd65ce.tar.xz
gnuradio-9c96244fe6598f6284ef3393b52563064edd65ce.zip
gr-digital/map_bb: Make .map() thread safe
-rw-r--r--gr-digital/lib/map_bb_impl.cc1
-rw-r--r--gr-digital/lib/map_bb_impl.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/gr-digital/lib/map_bb_impl.cc b/gr-digital/lib/map_bb_impl.cc
index 8a613b1cd..14b0ec526 100644
--- a/gr-digital/lib/map_bb_impl.cc
+++ b/gr-digital/lib/map_bb_impl.cc
@@ -61,6 +61,7 @@ void map_bb_impl::set_map(const std::vector<int>& map)
std::vector<int> map_bb_impl::map() const
{
std::vector<int> m(s_map_size);
+ gr::thread::scoped_lock guard(d_mutex);
for (unsigned i = 0; i < s_map_size; i++) {
m[i] = d_map[i];
}
diff --git a/gr-digital/lib/map_bb_impl.h b/gr-digital/lib/map_bb_impl.h
index 1137b4839..6cb4753ae 100644
--- a/gr-digital/lib/map_bb_impl.h
+++ b/gr-digital/lib/map_bb_impl.h
@@ -34,7 +34,7 @@ class map_bb_impl : public map_bb
private:
static const size_t s_map_size = 0x100;
unsigned char d_map[s_map_size];
- gr::thread::mutex d_mutex;
+ mutable gr::thread::mutex d_mutex;
public:
map_bb_impl(const std::vector<int>& map);