Call set_output_multiple() on the fly

I am writing a module that might need dynamic change to the block
length.
So I want to call set_output_multiple(blk_len) when the flow graph is
running.
Firstly, is this allowed?
Secondly, what are the effects?
If I have a “noutput_items%blk_len==0” checking in work(), will it fail
during the transition?
Thanks
Kyle

On Thu, Nov 25, 2010 at 11:11:27PM +1100, Kyle Z. wrote:

I am writing a module that might need dynamic change to the block length.
So I want to call set_output_multiple(blk_len) when the flow graph is running.
Firstly, is this allowed?
Secondly, what are the effects?
If I have a “noutput_items%blk_len==0” checking in work(), will it fail during
the transition?
Thanks
Kyle

There is no guarantee that set_output_multiple will work if you change
it on the fly.

It is possible that you could specify a value for set_output_multiple
that would require reallocation of the impacted buffers. We do not do
that.

Eric

On 26/11/2010 11:28 AM, Eric B. wrote:

There is no guarantee that set_output_multiple will work if you change
it on the fly.

It is possible that you could specify a value for set_output_multiple
that would require reallocation of the impacted buffers. We do not do
that.

Eric

Thanks Eric.
How about set_relative_rate()? can I call it on the fly?
Another question: is it thread safe to modify the module’s member
variables from outside the work()?
Kyle

On Fri, Nov 26, 2010 at 11:55:50AM +1100, Kyle Z. wrote:

Thanks Eric.
How about set_relative_rate()? can I call it on the fly?

Small changes are OK. Large changes have the same problem as
set_output_multiple.

Another question: is it thread safe to modify the module’s member
variables from outside the work()?

In general no, unless you do something to make it safe yourself.

Eric