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

utils: add a thread-safe single-producer/single-consumer queue #1504

Merged
merged 12 commits into from
Sep 22, 2023

Conversation

sebsura
Copy link
Contributor

@sebsura sebsura commented Jul 6, 2023

Thank you for contributing to the Bareos Project!

Adds utilities and data structures that can be used safely in multi-threaded code.

Please check

  • Short description and the purpose of this PR is present above this paragraph
  • Your name is present in the AUTHORS file (optional)

If you have any questions or problems, please give a comment in the PR.

Helpful documentation and best practices

Checklist for the reviewer of the PR (will be processed by the Bareos team)

Make sure you check/merge the PR using devtools/pr-tool to have some simple automated checks run and a proper changelog record added.

General
  • Is the PR title usable as CHANGELOG entry?
  • Purpose of the PR is understood
  • Commit descriptions are understandable and well formatted
  • Check backport line
  • Required backport PRs have been created
Source code quality
  • Source code changes are understandable
  • Variable and function names are meaningful
  • Code comments are correct (logically and spelling)
  • Required documentation changes are present and part of the PR
Tests
  • Decision taken that a test is required (if not, then remove this paragraph)
  • The choice of the type of test (unit test or systemtest) is reasonable
  • Testname matches exactly what is being tested
  • On a fail, output of the test leads quickly to the origin of the fault

@sebsura sebsura force-pushed the dev/ssura/master/thread-utils branch from 8bc865c to 4b4a58e Compare July 10, 2023 13:17
@sebsura sebsura force-pushed the dev/ssura/master/thread-utils branch 3 times, most recently from d47079e to ad0d46d Compare August 9, 2023 07:51
@sebsura sebsura force-pushed the dev/ssura/master/thread-utils branch from ad0d46d to 790b4c4 Compare September 4, 2023 10:57
Copy link
Member

@arogge arogge left a comment

Choose a reason for hiding this comment

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

This looks great. However, I still have a lot of comments, ideas and wishes. Feel free to discuss.
I haven't looked at the test yet.

core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Outdated Show resolved Hide resolved
core/src/lib/channel.h Show resolved Hide resolved
Copy link
Member

@arogge arogge left a comment

Choose a reason for hiding this comment

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

I have left a few comments for the test. My main concern is randomness and reproducibility.
The "end-user" API is pretty neat btw.

core/src/tests/channel.cc Outdated Show resolved Hide resolved
core/src/tests/channel.cc Outdated Show resolved Hide resolved
core/src/tests/channel.cc Show resolved Hide resolved
core/src/tests/channel.cc Outdated Show resolved Hide resolved
core/src/tests/channel.cc Outdated Show resolved Hide resolved
core/src/tests/channel.cc Outdated Show resolved Hide resolved
core/src/tests/channel.cc Outdated Show resolved Hide resolved
Copy link
Member

@arogge arogge left a comment

Choose a reason for hiding this comment

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

Great stuff. Thank you!

@arogge arogge changed the title utils: add some thread safe data structures utils: add a thread-safe single-producer/single-consumer queue Sep 19, 2023
@sebsura sebsura force-pushed the dev/ssura/master/thread-utils branch 3 times, most recently from 736fee4 to c3c267d Compare September 22, 2023 08:13
@BareosBot BareosBot merged commit d692437 into bareos:master Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants