-
Notifications
You must be signed in to change notification settings - Fork 1
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
Race conditions in YARP Plugins #60
Comments
The priority of this issue is low, because:
|
Careful with what is described here:
|
Not only via OpenraveYarpPluginLoader: all |
main()
: race conditionsmain()
main()
main()
No results with (locking env has no effect, and {
OpenRAVE::EnvironmentMutex::scoped_lock lock(penv->GetMutex()); // lock environment
int ret = sensorBasePtr->Configure(OpenRAVE::SensorBase::CC_PowerOn, true);
CD_DEBUG("CC_PowerOn: %d\n", ret);
} |
Note that https://github.com/rdiankov/openrave/blob/v0.9.0/src/cppexamples/orshowsensors.cpp does actually work. |
main()
We can avoid the "robot" vs "plugin" race condition via new syntax which loads the env first within the plugin (#99 (comment)): |
Leaving this issue open to research on |
Mostly solved via e3dfd77. Still, via
Therefore, the |
Fixed via 3e387ec (
It wasn't large environments and race conditions. It was the RGBD without Depth example, fixed via 033a5d0 Closing issue! |
This issue is a follow-up on #47 (comment).
Regarding the use of the
main()
function of OpenRAVE plugins, it is stated that "Robots might not necessarily be set before this function call". Current state:main()
for CLI support, where this race condition does not happen, such as:openrave /usr/local/share/teo-openrave-models/openrave/teo/teo.robot.xml --module OpenraveYarpPluginLoader "open --device controlboardwrapper2 --subdevice YarpOpenraveControlboard --robotIndex 0 --allManipulators"
openrave.py
. This is bad, but not terrible as we can always load the plugins via scripts as in the examples. Example of failure:openrave.py -i /usr/local/share/teo-openrave-models/openrave/teo/teo.robot.xml --module OpenraveYarpPluginLoader "open --device controlboardwrapper2 --subdevice YarpOpenraveControlboard --robotIndex 0 --allManipulators"
The text was updated successfully, but these errors were encountered: