summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-02-26 13:14:39 -0500
committerTom Rondeau <trondeau@vt.edu>2013-02-26 13:14:39 -0500
commit70904eb3086578ac44167a90621108fa98a01e78 (patch)
treee17ff0a233e8039318bee71bd5fa2238d902fe97
parentd0d1348a08db382e1497e4a929f2ec22b35b8f0a (diff)
analog: adding mutex locking when updating the fastnoise source parameters.
-rw-r--r--gr-analog/lib/fastnoise_source_X_impl.cc.t18
-rw-r--r--gr-analog/lib/fastnoise_source_X_impl.h.t4
2 files changed, 20 insertions, 2 deletions
diff --git a/gr-analog/lib/fastnoise_source_X_impl.cc.t b/gr-analog/lib/fastnoise_source_X_impl.cc.t
index f33e7afa39..25ad8073aa 100644
--- a/gr-analog/lib/fastnoise_source_X_impl.cc.t
+++ b/gr-analog/lib/fastnoise_source_X_impl.cc.t
@@ -57,6 +57,22 @@ namespace gr {
}
void
+ @IMPL_NAME@::set_type(noise_type_t type)
+ {
+ gruel::scoped_lock l(d_setlock);
+ d_type = type;
+ generate();
+ }
+
+ void
+ @IMPL_NAME@::set_amplitude(float ampl)
+ {
+ gruel::scoped_lock l(d_setlock);
+ d_ampl = ampl;
+ generate();
+ }
+
+ void
@IMPL_NAME@::generate()
{
int noutput_items = d_samples.size();
@@ -107,6 +123,8 @@ namespace gr {
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
+ gruel::scoped_lock l(d_setlock);
+
@TYPE@ *out = (@TYPE@*)output_items[0];
for(int i=0; i<noutput_items; i++) {
diff --git a/gr-analog/lib/fastnoise_source_X_impl.h.t b/gr-analog/lib/fastnoise_source_X_impl.h.t
index 7a0f792683..3c5dc106a2 100644
--- a/gr-analog/lib/fastnoise_source_X_impl.h.t
+++ b/gr-analog/lib/fastnoise_source_X_impl.h.t
@@ -43,8 +43,8 @@ namespace gr {
@IMPL_NAME@(noise_type_t type, float ampl, long seed, long samples);
~@IMPL_NAME@();
- void set_type(noise_type_t type) { d_type = type; generate(); }
- void set_amplitude(float ampl) { d_ampl = ampl; generate(); }
+ void set_type(noise_type_t type);
+ void set_amplitude(float ampl);
void generate();
noise_type_t type() const { return d_type; }