[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] messages get lost randomly
From: |
Miklos Maroti |
Subject: |
Re: [Discuss-gnuradio] messages get lost randomly |
Date: |
Sat, 22 Feb 2014 00:40:39 +0100 |
Hi Guys,
Ok, I have found out how to make it work reliably. You must register a
listener with set_msg_handler, and then you will get the missing
messages there.
In light of this, I do not see how pdu_to_tagged_stream could work
reliably. It does not register a listener (but it does not block
either), so if there is a gap in the message stream, then it will miss
that message.
Miklos
On Fri, Feb 21, 2014 at 11:55 PM, Miklos Maroti
<address@hidden> wrote:
> Hi Guys,
>
> I am using the messaging support of basic_block registering the
> message queue with message_port_register_in and removed the obtained
> messages with delete_head_blocking. This block is producing streams
> and everything seems to work fine as long as I consume the messages
> fast enough. However, if I put a throttle block after my stream
> producing block, then messages get lost.
>
> The producer generates 10000 messages with message_port_pub, but the
> consumer does not receive all of those messages. I intentionally wait
> 500 ms on the producer for the consumer to be started (otherwise the
> consumer might not get registered in time). So I have verified that
> the problem is not in my code, but somewhere the messages get lost.
>
> As far as I see in the basic_block code these message queues are not
> regular msg_queue objects but std::deque objects protected by locks. I
> do not see how messages could get lost. Any ideas?
>
> Miklos