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

tbb::concurrent_queue push and pop with move semantics

jnd
Beginner
752 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
752 Views

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

0 Kudos
jnd
Beginner
752 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

0 Kudos
Rodion_Malinovsky
752 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?

0 Kudos
RafSchietekat
Valued Contributor III
752 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.

0 Kudos
Reply