ros-simulation/gazebo_ros_pkgs — pull request #65 by meyerj (2013-07-04 15:51:04+00:00)
Title: GazeboRosApiPlugin is not properly unloaded during destruction

The GazeboRosApiPlugin checks if the plugin_loaded_ flag is true in its destructor, but this flag was never set before. This results in a lock_error if the callback queue is destroyed without having terminated the `gazeboQueueThread` thread properly first.

I am not sure if simply setting the flag is a 100% clean solution as some connections are established in the `GazeboRosApiPlugin::loadGazeboRosApiPlugin()` function called from the WorldCreated event and the plugin could be deconstructed before the world is fully created in case other plugins fail to load.

See http://answers.gazebosim.org/question/3444/gazebo-aborts-with-boostlock_error-when-adding-a/ for an example with stack traces.