Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • wolf wolf
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 87
    • Issues 87
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mobile_robotics
  • wolf_projects
  • wolf_lib
  • wolfwolf
  • Merge requests
  • !259

Multi-threading patch

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Joan Vallvé Navarro requested to merge feature/multithreading_patch into devel Apr 08, 2019
  • Overview 0
  • Commits 1
  • Pipelines 1
  • Changes 1

As explained in #188 (closed), some of the wolf ros nodes use different threads for each sensor callback and the call to solve() as well. Consequently, it rarely crashes due to some asserts in SolverManager::update().

They are there to guarantee that all notified factors have been updated and that all state blocks in the problem are registered. However, with this multithreading scheme, a new factor or state block is sometimes added during the update() execution.

This MR comments two asserts and adds a continue to avoid a third case which would produce an error. However, this is just a patch, we should discuss adding some mutex for some Problem attributes or whatever.. to deal with multi-threading.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/multithreading_patch