Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
2414 Discussions

tbb::concurrent_queue push and pop with move semantics

jnd
Beginner
291 Views

Hello Intel,

I'm writing a c++11-native set of libraries and am using std::unique_ptr<> - style pointers in all relevant circumstances. I see that the tbb::concurrent_queue push signature requires a copy. 

Would you please consider adding a std::move-enabled move to your push and pop signatures, as in:

void push( const T&& source );

bool try_pop( T&& destination );

Perhaps under the covers this is a bad idea, but I don't see why it would be. 

Thank you,

-Jay

0 Kudos
4 Replies
Wooyoung_K_Intel
Employee
291 Views

Thank you for suggestion. Will see what we can do. It looks reasonable.

jnd
Beginner
291 Views

Thank you Wooyoung. Its probably obvious that many tbb containers etc could benefit, not just concurrent_queue as per my first inquiry. 

Regards -Jay

Rodion_Malinovsky
291 Views

Is there any chance that concurrent_bounded_queue will support std::uniqie_ptr? Current release of the TBB is 4.4. Seems concurrent_priority_queue already supports it. Any plans regarding the concurrent_bounded_queue?

RafSchietekat
Black Belt
291 Views

#1P4 push(const T&&) makes no sense: an rvalue reference is intended to be plundered. Or did I miss something?

#4P1 I think you missed something.

Reply