Skip to content
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

Make more transparent how ZCM works internally #258

Open
ernestum opened this issue May 31, 2019 · 1 comment
Open

Make more transparent how ZCM works internally #258

ernestum opened this issue May 31, 2019 · 1 comment

Comments

@ernestum
Copy link
Contributor

Like most APIs, ZCM provides a leaky abstraction. E.g. we are not allowed to subscribe/unsubscribe inside of handlers and it a handler blocks, no other handlers get executed. Why this is the case becomes far more clear when we look at the following diagram, which we could include in the documentation:
image
This could also be the place where we explain, that the difference between zcm_run and zcm_start is only whether the handle thread gets executed in a new thread or in the current thread (one might be tempted to think that the zcm_run variant does not start any new threads).

@jbendes
Copy link
Member

jbendes commented Jun 5, 2019

I'm actually more a fan of making it not a "leaky abstraction" but documentation definitely never hurts. Do you have a thought as to where in the documentation flow this type of explanation would go? A reminder that this is only for the blocking transport api. zcm at the api layer does not do this stuff (hence the leaky abstraction)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants