Observed result or behaviour:
When a publisher sends samples and removes itself before the subscriber called Subscriber::receive then the samples are lost.
Expected result or behaviour:
The Subscriber::receive call shall return samples until they are no more.
Details:
The problem originates in the update_connections call in the Subscriber. Whenever receive is called this method is called internally at first. When the method discovers that a publisher has disconnected it removes the zero copy connection, therefore the subscriber can no longer acquire sample from that connection leading to lost samples.
Required information
Observed result or behaviour: When a publisher sends samples and removes itself before the subscriber called
Subscriber::receive
then the samples are lost.Expected result or behaviour: The
Subscriber::receive
call shall return samples until they are no more.Details: The problem originates in the
update_connections
call in the Subscriber. Whenever receive is called this method is called internally at first. When the method discovers that a publisher has disconnected it removes the zero copy connection, therefore the subscriber can no longer acquire sample from that connection leading to lost samples.