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

Make sure we always compile with BOOST_CB_ENABLE_DEBUG set to 0 #8067

merged 2 commits into from
Jul 12, 2019


Copy link

@rgacogne rgacogne commented Jul 11, 2019

Short description

Even though the documentation states that:

simultaneous read accesses to a shared circular_buffer are safe

boost::circular_buffer < 1.62 was built with a debugging facility by default that made it unsafe to access the same circular buffer from more than one thread at once, in addition to making iterator operations slower.

It's only a real issue in dnsdist since our DNS over TLS code is the only place where we read from a circular buffer from several threads at once, but this change might provide a small performance boost in the auth and rec as well on platforms where boost is older than 1.62.

Note that I have compiled and tested this code only on Arch, we need to test it on other distributions before merging this PR, especially ones with a boost version lesser than 1.62.


I have:

  • read the document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

Copy link

Works fine on OpenBSD (boost 1.66, so that is no surprise). Checked that the only direct ref to boost/circular_buffer.hpp is in the new header file. I don not have a system with older boost at hand.

Copy link
Member Author

Just tested it on CentOS 7, it doesn't work as expected because BOOST_CB_ENABLE_DEBUG is blindly overridden, we need to set BOOST_CB_DISABLE_DEBUG to 1 instead. Fix coming.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

Successfully merging this pull request may close these issues.

None yet

3 participants