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: Marcus Müller
Subject: Re: [Discuss-gnuradio] Should return the number of input or the number of output?
Date: Tue, 11 Mar 2014 10:08:20 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Well, it's basically the idea of not writing a special case for a
single type of block; and if you are aware that sync blocks are only
subclasses of normal blocks that implement a general_work which
consumes *and* produces the return value of work, than everything is
clear and readable :)
Greetings,
Marcus

On 11.03.2014 01:34, Activecat wrote:
> Dear Martin,
> 
> Apparently the consistency of code across different source files is
> more emphasized than its clarity in individual file. Nevertheless
> that is clear now, thanks.
> 
> Regards, Activecat
> 
> 
> On Mon, Mar 10, 2014 at 9:18 PM, Martin Braun
> <address@hidden>wrote:
> 
>> 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
>>> 
>> 
>> 
>> _______________________________________________ Discuss-gnuradio
>> mailing list address@hidden 
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> 
> 
> 
> 
> _______________________________________________ Discuss-gnuradio
> mailing list address@hidden 
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTHtKDAAoJEBQ6EdjyzlHtKhsIAJaKRWiOkmZ8/icO07FjTDCP
M7DFTEvaWXl/WFRSVfGYkccE513iXU/wTmud4gF8ywYHK+YWJbEOmPV3aEKNNTU5
8C1GNa6a0yPfGz7l4+WK0oKt8vIklViSKqt+sOJ3G/FGu/bllSoStbOvGnzw2ubI
mJDfE4BzAuBIGSRr6Ar11UJ7xRNwLg9pcGsDYEAy12HUKpuJSqKP9rrb1wb1Kwco
t/Ov+KvmgPiNnP8w6V2VZ5FIWtE77BsdALtDZy4dKsQaSCiOPb+AxZyOZUP1XDYD
rV0POlRWuQ4kPqRH8MhzxUn6h7yKs31q+9GSkWOCO8YiCC9EvYDYvi3Jm/oZndY=
=4uZc
-----END PGP SIGNATURE-----



reply via email to

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