On Wed, Jul 22, 2009 at 07:45, Yc Park<[email protected]> wrote: > ece$ python ./from_udp.py > gr_block_executor: source <gr_block udp_source (3)> returned 0 from > work. We're marking it DONE.
This is essentially a bug in the design of gr.udp_source() that sort of worked okay back in the single-threaded scheduler days, but not now with the multi-threaded scheduler. Basically, returning 0 samples from a source block work function will cause the scheduler to immediately call it again, resulting in 100% utilization of a processor core until the source block can produce data. The thread-per-block scheduler enforces this now by terminating the block. The fix is fairly easy (the original problem returning 0 was supposed to solve can be fixed in another way), but not sure when it can be done. A work around is to open the network socket in Python, then pass the file descriptor to gr.file_descriptor_source(item_size, fd). Johnathan _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
