Comments (10)
for some data structures this is by design (the queue
requires a trivial assignment operator) for the other data structures, patches are more than welcome
from lockfree.
I patched spsc_queue so that it works for me. I posted about this in the boost mailing list here:
getting a move only type into spsc_queue.
In the meantime I forked the repository and have a better implementation that uses std::enable_if. The main "issue" is the "detail\copy_payload.hpp" which is used by serveral implementaions so I'm hesitant to change it.
from lockfree.
i'm not reading the boost-user list. but you could do a PR and we could discuss it there
from lockfree.
I'll tidy the stuff up a little a locally, push it, and then do a PR.
from lockfree.
@timblechmann any news on that ? Thanks !
from lockfree.
@cor3ntin I made the pull request minimal changes to allow single move only values to be pushed and poped #27 on Aug 3, 2016 and have received no feedback.
from lockfree.
thanks for the heads-up.
from the 3 PRs #31 looks best and i'm commenting on this. i only have limited time atm to work on this and no real use-case for move semantics, so it would be great if you guys could pick up that pr and complete it
from lockfree.
@timblechmann But they do different things. This one works with move-only types such as unique_ptr
where as the other simply does some optimizations for move-able types. #31 but fails on move-only types.
from lockfree.
#27 will break c++98 compatibility. any PR that will go in should not break compatibility as it may break user code. move-only types should be supported, though.
i don't care too much, which implementation should go in, as long as it's still c++98 compatible, has test coverage and supports both moveable and move-only types :)
from lockfree.
@timblechmann I'm sure #27 can be made c++98 compatible by simply hiding the functionality via #defines
. We can also do them one after another, first move-able and then move-only.
from lockfree.
Related Issues (20)
- queue_interprocess_test and stack_interprocess_test failed in clang on Windows for conflicting types HOT 1
- x86-64 pointer tagging is unsound on most recent Intel CPUs (Ice Lake) HOT 1
- unsynchronized_push does not compile while stack capacity is specified
- Test stack_test is LittleEndian dependant HOT 7
- Lockfree queue delivers data out of order HOT 5
- differering destructor behavior with compile-time size HOT 1
- spsc_queue with compile_time_sized_ringbuffer does not call destructors of remaining queue items when destroyed HOT 3
- compilation error using tagged_ptr_dcas.hpp
- How to contribute code HOT 2
- boost.lockfree tagged_ptr conflict with Hardware-assisted AddressSanitizer(HWASan) from LLVM project HOT 4
- alignment change in 1.77 beta breaks VS 2017 builds HOT 3
- "No constructor could take the source type, or constructor overload resolution was ambiguous" with boost::lockfree::queue::unsynchronized_push
- 1.6.7 lockfree queue, out of order
- Can the Queue be movable? HOT 1
- boost::lockfree queues support r-values and move in push/pop/consume etc? HOT 1
- Lockfree Queue Triggers Thread Sanitizer Data Race Warning HOT 4
- a new lock-free queue HOT 1
- error in tagged_ptr_dcas.hpp about BOOST_ALIGNMENT
- version 1.73 boost::lockfree::queue crash under android 12 when destruct?
- variable-sized queue with a custom allocator is not constructible HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lockfree.