Skip to content
This repository was archived by the owner on May 31, 2025. It is now read-only.

Fix subscription busy wait melodic#2014

Merged
dirk-thomas merged 2 commits intomelodic-develfrom
fix_subscription_busy_wait-melodic
Jul 31, 2020
Merged

Fix subscription busy wait melodic#2014
dirk-thomas merged 2 commits intomelodic-develfrom
fix_subscription_busy_wait-melodic

Conversation

@dirk-thomas
Copy link
Copy Markdown
Member

Duplicate of cwecht#1.

@meyerj FYI.

meyerj added 2 commits July 31, 2020 12:57
Replace duplicate wait_for() call in CallbackQueue::callOne() with a loop and a call to wait_until().
…ely if timeout.isZero()

... and if none of the other result conditions holds (i.e. the queue is Empty or Disabled).
@dirk-thomas dirk-thomas merged commit c6778d0 into melodic-devel Jul 31, 2020
@dirk-thomas dirk-thomas deleted the fix_subscription_busy_wait-melodic branch July 31, 2020 20:49
meyerj added a commit to meyerj/ros_comm that referenced this pull request Oct 7, 2024
* roscpp: simplify implementation of CallbackQueue::callOne()

Replace duplicate wait_for() call in CallbackQueue::callOne() with a loop and a call to wait_until().

* roscpp: return TryAgain from CallbackQueue::callOne(timeout) immediately if timeout.isZero()

... and if none of the other result conditions holds (i.e. the queue is Empty or Disabled).

Co-authored-by: Johannes Meyer <johannes@intermodalics.eu>
meyerj added a commit to meyerj/ros_comm that referenced this pull request Oct 7, 2024
* roscpp: simplify implementation of CallbackQueue::callOne()

Replace duplicate wait_for() call in CallbackQueue::callOne() with a loop and a call to wait_until().

* roscpp: return TryAgain from CallbackQueue::callOne(timeout) immediately if timeout.isZero()

... and if none of the other result conditions holds (i.e. the queue is Empty or Disabled).

Co-authored-by: Johannes Meyer <johannes@intermodalics.eu>
sloretz pushed a commit that referenced this pull request May 5, 2025
… long" (#2377)

* * Fix a busy-wait loop in subscription queue.

* Better fix for slow callbacks CPU throttling.

* More versatile callback queue test.

* Finished cherry-pick merge to melodic-devel.

* libros: moved define

* roscpp: implementet #1608 without ABI/API breaks

* /test_roscpp: fake_message is in a header now...

* test_roscpp: fixed sign-compare warning

* stabilized test

* CallbackQueue: use SteadyTime instead of WallTime to get independent of system-time changes

* style only

* Update clients/roscpp/include/ros/callback_queue.h

Co-authored-by: Johannes Meyer <johannes@intermodalics.eu>

Co-authored-by: Martin Pecka <peci1@seznam.cz>
Co-authored-by: CTU base <robot@ctu-base>
Co-authored-by: Martin Pecka <peckama2@fel.cvut.cz>
Co-authored-by: Christopher Wecht <christopher.wechtstudent.kit.edu>
Co-authored-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
Co-authored-by: Johannes Meyer <johannes@intermodalics.eu>

* Fix subscription busy wait melodic (#2014)

* roscpp: simplify implementation of CallbackQueue::callOne()

Replace duplicate wait_for() call in CallbackQueue::callOne() with a loop and a call to wait_until().

* roscpp: return TryAgain from CallbackQueue::callOne(timeout) immediately if timeout.isZero()

... and if none of the other result conditions holds (i.e. the queue is Empty or Disabled).

Co-authored-by: Johannes Meyer <johannes@intermodalics.eu>

---------

Co-authored-by: Christopher Wecht <cwecht@users.noreply.github.com>
Co-authored-by: Martin Pecka <peci1@seznam.cz>
Co-authored-by: CTU base <robot@ctu-base>
Co-authored-by: Martin Pecka <peckama2@fel.cvut.cz>
Co-authored-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants