diff options
-rw-r--r-- | gnuradio-runtime/lib/vmcircbuf.cc | 2 | ||||
-rw-r--r-- | gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/gnuradio-runtime/lib/vmcircbuf.cc b/gnuradio-runtime/lib/vmcircbuf.cc index e4e1590205..315d409c5d 100644 --- a/gnuradio-runtime/lib/vmcircbuf.cc +++ b/gnuradio-runtime/lib/vmcircbuf.cc @@ -292,8 +292,6 @@ namespace gr { { bool ok = false; - gr::thread::scoped_lock guard(s_vm_mutex); - std::vector<vmcircbuf_factory *> all = all_factories(); for(unsigned int i = 0; i < all.size (); i++) diff --git a/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc b/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc index 0d7e9b7d34..484b1a914e 100644 --- a/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc +++ b/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc @@ -46,6 +46,8 @@ namespace gr { vmcircbuf_sysv_shm::vmcircbuf_sysv_shm(int size) : gr::vmcircbuf(size) { + gr::thread::scoped_lock guard(s_vm_mutex); + #if !defined(HAVE_SYS_SHM_H) fprintf(stderr, "gr::vmcircbuf_sysv_shm: sysv shared memory is not available\n"); throw std::runtime_error("gr::vmcircbuf_sysv_shm"); @@ -150,6 +152,8 @@ namespace gr { vmcircbuf_sysv_shm::~vmcircbuf_sysv_shm() { + gr::thread::scoped_lock guard(s_vm_mutex); + #if defined(HAVE_SYS_SHM_H) if(shmdt(d_base - gr::pagesize()) == -1 || shmdt(d_base) == -1 |