-
Notifications
You must be signed in to change notification settings - Fork 19
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
Unregistering foreign topic by callback #10
Comments
How shall we handle a case like this? |
That one is a problem? |
When the publisher node un-register a topic, it also removes from remote master. Which means that there is no way to let the subscriber node know the topic will be re-registered. |
perhaps TTL registrations could play a role here? An un-register could be automatic if the pubilsher goes down and the expire callback is triggered. Looks like Redis support for expire callbacks isn't 100% there yet though: http://code.google.com/p/redis/issues/detail?id=360 |
Is this issue still relevant? |
The comments have mixed up the ideas for this a bit. The basic gist is how to handle the disappearance of registered pubsubs. We currently do via polling in the watcher thread loop. The other method is a direct callback from the master like ken's master sync does. The latter doesn't require any of the parsing we do for pub, subs or actions, so it is more efficient. Admittedly, not a huge priority, but I like to be efficient, so it's on the ToDo list. |
We're just going to do things by polling for now - #9.
For topics, there is a smarter way to do it though - by callback through the master xmlrpc node. Ye olde master sync does this. At some point it would be more efficient to upgrade to using this method. Unfortunately it seems the rosgraph.masterapi python wrapper around the xmlrpc api does not provide a way to do this (confirmed?).
Some more info on the old master sync approach is here:
http://redmine.robotconcert.org/projects/multimaster/wiki/MasterSync
The text was updated successfully, but these errors were encountered: