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

Use different concurrent queue implementation #259

Open
ernestum opened this issue Jun 3, 2019 · 3 comments
Open

Use different concurrent queue implementation #259

ernestum opened this issue Jun 3, 2019 · 3 comments

Comments

@ernestum
Copy link
Contributor

ernestum commented Jun 3, 2019

There is a queue implementation without locks which is provably performing well and it is thoroughly tested. I think I would prefer it over the current implementation.

https://github.com/cameron314/concurrentqueue

@jbendes
Copy link
Member

jbendes commented Jun 5, 2019

I'm all game for the use of a better queue. I am not familiar enough with the concurrent queue to comment on its implementation. Aside from code quality and functionality, my top concern would be licensing and compatibility. The queue would have to work on any OS (I don't want to move farther from OS uniformity). It would have to not add any build dependencies (a key design principle of zcm is that it has very limited required external dependencies). And last but not least it must have a license that will allow us to make it part of the repo which is covered under LGPL.

@ernestum
Copy link
Contributor Author

ernestum commented Jun 5, 2019

It is under the Simplified BSD License which should be compatible? ( Am no expert here)
It is designed as a header-only library consisting of a single file that we could just drop into this repo.

@jbendes
Copy link
Member

jbendes commented Jun 6, 2019

Yep that should be just fine! Not sure how this would fit in though. Considering the current blocking implementation requires the ability for the "popper" to go to sleep waiting on the "pusher". But that probably ties in closely with the asio conversation

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

No branches or pull requests

2 participants