discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Should return the number of input or the number o


From: Martin Braun
Subject: Re: [Discuss-gnuradio] Should return the number of input or the number of output?
Date: Mon, 10 Mar 2014 14:18:34 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

OK, I admit I was unclear. Let's try from scratch:

- The return function from work() or general_work() is the amount of
items that were *produced*.
- In a sync block, the number of items produced is the number of items
consumed, so we can use that to save the developer from manually
consuming(). In other words, in a sync block, the return value is *both*
the number of produced and consumed items.
- Sinks and sources are syncs, therefore the mechanic is always the same.
- Sinks are a special case because they don't produce anything. However,
the scheduler knows the block's io signature, and knows what to do. The
consume/produce mechanic stays the same, for consistency's sake, as with
all other sync blocks.

Hope this clears things up!

M


On 03/10/2014 02:09 PM, Activecat wrote:
> If the return value of work() is used to tell the scheduler how much we
> have consumed, than it is very clear!
> 
> In general_work() of new templates generated by gr_modtool, we always
> see this, even for sink blocks:
>      
>       // Tell runtime system how many output items we produced.
>       return noutput_items;
> 
> The comment sounds like the return value of general_work() is to tell
> the scheduler how many output items have produced.
> If this is true, for sink block, we should actually returned zero
> because sink block doesn't produce any output item.
> 
> To avoid confusion, and to be more consistent, I suggest to put this
> instead into work() of new templates of sink block:
> 
>     // Tell runtime system how many input items have been consumed.
>     return noutput_items;
> 
> Because when I look into sync_block.cc, the return value of work() is
> actually used for consume_each(r).
> 
> Just a silly suggestion. Thanks.
> 
> Regards,
> Activecat
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]