ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

disRecord's profile - activity

2020-02-29 22:43:17 -0500 received badge  Famous Question (source)
2018-07-31 07:20:08 -0500 received badge  Notable Question (source)
2017-09-30 19:35:00 -0500 received badge  Popular Question (source)
2017-04-28 03:03:49 -0500 commented question moveit_setup_assistant crashes on startup

It's relatively old bug. In Jessie kinetic OpenCv is compiled against Qt4 whereas MoveIt uses Qt5. http://answers.ros.or

2017-04-28 03:00:14 -0500 commented question Moveit_setup_assistant crash with segmentation fault in libQtGUI.so.4

MoveIt! is compiled against Qt5 according to kinetic conventions. But it depends on OpenCV3 which uses Qt4. It is relati

2016-12-18 04:33:28 -0500 commented question moveit setup assistant segfault on jessie

Maybe it is not a MoveIt! bug. It seems ros-kinetic-opencv3 in Jessie is compiled with Qt4 and MoveIt! depends on this library.

2016-11-19 06:06:35 -0500 commented question Service destructor is not called when component is unloaded

Thank you, but it seems it really hates my email address. I'll make github account and try to post an issue on github.

2016-11-19 04:50:35 -0500 commented question Service destructor is not called when component is unloaded

Well, it is. But I was unable to register on OROCOS forum (it does not like my email address). My friend was more lucky, but he has never received confirmation email. This behavour looks like a bug, but shared_ptr loop presents in code for too long to not be noticed.

2016-11-18 05:42:46 -0500 asked a question Service destructor is not called when component is unloaded

This behavour can be reproduced by simple test

class MyService : public RTT::Service {
public:
    MyService(TaskContext* owner) : Service("myservice", owner)  {
         cout << "MyService constructor." << endl;    
    }

   ~MyService() {
        cout << "MyService destructor." << endl;
    }
};

and then load myservice in any component.

It seems to be caused by boost::shared_ptr loop in RTT::Service definition:

typedef std::map< std::string, shared_ptr > Services;
Services services;
...
shared_ptr parent;

What is cause of such design? Why should children owns it's parent? I can not imagine use case when we need preserve Service when coresponding component is being destructed.