Hi,
'doh.
Which leaves one to wonder why the finished state never gets checked.
I'll be back after a bit of tracing.
Cheers,
Marcus
On 24.07.2016 08:04, Sylvain Munaut wrote:
> Hi,
>
>> 52 int pdu_to_tagged_stream_impl::calculate_output_stream_length(const
>> gr_vector_int &)
>> 53 {
>> 54 if (d_curr_len == 0) {
>> 55 /* FIXME: This blocking call is far from ideal but is the best
>> we
>> 56 * can do at the moment
>> 57 */
>> 58 pmt::pmt_t msg(delete_head_blocking(PDU_PORT_ID, 100));
>> 59 if (msg.get() == NULL) {
>> 60 return 0;
>> 61 }
> [snip]
>
>> Problem is that if we use the non-blocking call here, the scheduler would
>> have a chance to process the shutdown signal, but it would be constantly
>> asking (spinning) for the output stream length.
>>
>> You could try out what would happen if we'd added a timeout to the blocking
>> cal; that way, you could reduce the spinning, and hopefully get the
>> scheduler to check for "done" messages.
> There _is_ a timeout ... that "100" in there is the # of millisec to
> wait at most.
>
>
> Cheers,
>
> Sylvain
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio