In general you should only call produce() and consume() from within
general_work(), and, really, you only need to consume() because
produce() can be called with the return value from the function call
(or, return WORK_CALLED_PRODUCE to indicate as much). The other block
types (e.g. sync), call both produce() and consume() for you already, so
you generally should not need to call them directly from your code. In
general, you should be able to get away with calling produce() and/or
consume() just once. I can think of some scenarios where interim calls
might make sense, but those are rare circumstances.

Sure please do submit a PR to fix documentation; those are always
welcome! - MLD

On Sun, Nov 19, 2017, at 02:49 PM, rear1019 wrote:
> On Sun, 19 Nov 2017 at 13:16:14 -0500, Michael Dickens wrote:
> > You can safely call produce() and consume() multiple times in the same
> > work() call: yes!
> 
> I assume this also applies to general_work()?
> 
> > Note that by doing so, if you're using the nitems_written() or
> > nitems_read() [e.g., for finding or writing tags], then those values
> > will be updated when you call produce() and consume()
> 
> This is an important information missing in the documentation. I will
> make a pull request to fix this.
> 
> > Hope this helps! - MLD
> 
> Thank you very much for the fast and detailed answer.

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to