-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can dds_take(...)
return 0 in data_available
?
#154
Comments
I found |
That combination doesn't work: transient-local depends on the retransmit mechanism and the infrastructure for doing retransmits is not even created for best-effort readers/writers. One could consider making it possible to use the combination ... but I have never really given thought to how exactly that might work.
I would generally not expect data_available to trigger unless something arrived and there is something to take (apart from some weird edge cases, such as with a very short setting for lifespan once that is implemented). At the same time, I am generally not against the odd spurious trigger, but only if those spurious triggers are really rare. So at the very least I'd like to understand what exactly causes it to trigger here. Can you share the test program? That might be the easiest way.
It can be zero because ping/pong is a little bit of a mess 😟 As discussed above, I would generally not expect it to be zero when it is invoked as the "data available" listener, but in ping/pong it can be invoked either as the listener or from the main function whenever the call to
I wouldn't expect anything unusual to happen if |
* correct fallthrough macro Signed-off-by: Karsten Knese <karsten@openrobotics.org>
Hi! I put one write and one reader in a single participant. I set Qos
DDS_DURABILITY_TRANSIENT_LOCAL
,DDS_RELIABILITY_BEST_EFFORT
with 0.01s andDDS_HISTORY_KEEP_ALL
with 0 to both writer and reader. Also, I set them a listener. At last, I start 50 participants to make them talk with each other and theirselves. I founddds_take(...)
would return 0 indata_available
. Is it right or an error?The text was updated successfully, but these errors were encountered: