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

Refactor to use rcl #207

Merged
merged 49 commits into from
Apr 24, 2016
Merged

Refactor to use rcl #207

merged 49 commits into from
Apr 24, 2016

Conversation

jacquelinekay
Copy link
Contributor

@jacquelinekay jacquelinekay commented Mar 13, 2016

TODO:

  • address problems linking to all rmw implementations
  • address intra process test failure
  • address multithreaded test failure
  • services hang (connext and connext dynamic only)

@jacquelinekay jacquelinekay added the in progress Actively being worked on (Kanban column) label Mar 13, 2016
get_client_handle() const;

virtual std::shared_ptr<void> create_response() = 0;
virtual std::shared_ptr<rmw_request_id_t> create_request_header() = 0;
virtual void handle_response(
std::shared_ptr<rmw_request_id_t> request_header, std::shared_ptr<void> response) = 0;

private:
protected:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any rational here? making members protected is possibly the right thing to do, but it's not clear why you decided to do this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I decided to push some member variables that are not templated but need to be accessible by the child class into the parent class.

@jacquelinekay
Copy link
Contributor Author

welp. Lots of regressions since the last time I tested this. Looking into it

@wjwwood
Copy link
Member

wjwwood commented Apr 16, 2016

Well the code review looks ok to me (other than comments). I'll try to help you look into the regressions.

@jacquelinekay
Copy link
Contributor Author

@jacquelinekay
Copy link
Contributor Author

I had to ifdef out the custom allocators in rcl because the way I did it was causing every Windows test to segfault. I also I had to fix some problems with inheritance in timers on Windows.

The multithreaded tests don't pass on Windows on my vm. I'm going to run CI to see what the status is but I'm tempted to just merge this so that I can unblock @wjwwood and then I can work on fixing up the technical debt in parallel.

http://ci.ros2.org/job/ci_linux/1214/
http://ci.ros2.org/job/ci_osx/981/
http://ci.ros2.org/job/ci_windows/1259/

@jacquelinekay
Copy link
Contributor Author

Another round with the atomics fix for Windows (this fixes the multithreaded tests locally for me): ros2/rcl#49

http://ci.ros2.org/job/ci_windows/1264/

@jacquelinekay
Copy link
Contributor Author

OMG that last CI job has 18 failures, which is as many as the nightly Windows release job!! woohoo

@wjwwood
Copy link
Member

wjwwood commented Apr 24, 2016

Are they the same ones :)?

@wjwwood
Copy link
Member

wjwwood commented Apr 24, 2016

The changes lgtm. Anything else need to be done to merge this?

@jacquelinekay jacquelinekay merged commit e961189 into master Apr 24, 2016
@jacquelinekay jacquelinekay deleted the use_rcl branch April 24, 2016 21:25
@jacquelinekay jacquelinekay removed the in progress Actively being worked on (Kanban column) label Apr 24, 2016
g_is_interrupted.store(false);
rmw_ret_t status = rmw_init();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The call to rmw_init was removed but not replaces with any equivalent. As a result the rmw init function is not being called anymore. See discussion on the mailing list: https://groups.google.com/forum/#!topic/ros-sig-ng-ros/jr6x3vWy4ls

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe rcl_init is being called one line below. I believe the problem is that rcl_init does not call rmw_init, not that rclcpp does not call rmw_init.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rcl_init does not call rmw_init, I'll open a pull request for this:

ros2/rcl#69

However, there is no rmw_shutdown right now and rmw_init is generally not used, so I think I probably didn't use it because I knew we had to change some things about how init/shutdown worked with the rmw interface anyways. I'm not sure it should be merged in it's asymmetric state, or if we should address this when we fix the rmw init/shutdown code.

nnmm pushed a commit to ApexAI/rclcpp that referenced this pull request Jul 9, 2022
It is dangerous to keep type index float when do SET_RESIZE. It is
possible that index greater than new size. Thus, set index to 0.

Signed-off-by: jwang <jing.j.wang@intel.com>
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

Successfully merging this pull request may close these issues.

3 participants