@@ -196,11 +196,8 @@ Status ShuffleExchanger::_split_rows(RuntimeState* state, const uint32_t* __rest
196196 }
197197 }
198198
199- vectorized::Block data_block;
199+ vectorized::Block data_block = block-> clone_empty () ;
200200 std::shared_ptr<BlockWrapper> new_block_wrapper;
201- if (!_free_blocks.try_dequeue (data_block)) {
202- data_block = block->clone_empty ();
203- }
204201 data_block.swap (*block);
205202 new_block_wrapper =
206203 BlockWrapper::create_shared (std::move (data_block), local_state->_shared_state , -1 );
@@ -262,11 +259,8 @@ Status ShuffleExchanger::_split_rows(RuntimeState* state, const uint32_t* __rest
262259 }
263260 }
264261
265- vectorized::Block data_block;
262+ vectorized::Block data_block = block-> clone_empty () ;
266263 std::shared_ptr<BlockWrapper> new_block_wrapper;
267- if (!_free_blocks.try_dequeue (data_block)) {
268- data_block = block->clone_empty ();
269- }
270264 data_block.swap (*block);
271265 new_block_wrapper = BlockWrapper::create_shared (std::move (data_block), nullptr , -1 );
272266 if (new_block_wrapper->_data_block .empty ()) {
@@ -288,10 +282,7 @@ Status PassthroughExchanger::sink(RuntimeState* state, vectorized::Block* in_blo
288282 if (in_block->empty ()) {
289283 return Status::OK ();
290284 }
291- vectorized::Block new_block;
292- if (!_free_blocks.try_dequeue (new_block)) {
293- new_block = {in_block->clone_empty ()};
294- }
285+ vectorized::Block new_block = in_block->clone_empty ();
295286 new_block.swap (*in_block);
296287 auto channel_id = ((*sink_info.channel_id )++) % _num_partitions;
297288 BlockWrapperSPtr wrapper = BlockWrapper::create_shared (
@@ -340,10 +331,7 @@ Status PassToOneExchanger::sink(RuntimeState* state, vectorized::Block* in_block
340331 if (in_block->empty ()) {
341332 return Status::OK ();
342333 }
343- vectorized::Block new_block;
344- if (!_free_blocks.try_dequeue (new_block)) {
345- new_block = {in_block->clone_empty ()};
346- }
334+ vectorized::Block new_block = in_block->clone_empty ();
347335 new_block.swap (*in_block);
348336
349337 BlockWrapperSPtr wrapper = BlockWrapper::create_shared (
@@ -370,21 +358,14 @@ Status PassToOneExchanger::get_block(RuntimeState* state, vectorized::Block* blo
370358
371359void ExchangerBase::finalize () {
372360 DCHECK (_running_source_operators == 0 );
373- vectorized::Block block;
374- while (_free_blocks.try_dequeue (block)) {
375- // do nothing
376- }
377361}
378362
379363Status BroadcastExchanger::sink (RuntimeState* state, vectorized::Block* in_block, bool eos,
380364 Profile&& profile, SinkInfo&& sink_info) {
381365 if (in_block->empty ()) {
382366 return Status::OK ();
383367 }
384- vectorized::Block new_block;
385- if (!_free_blocks.try_dequeue (new_block)) {
386- new_block = {in_block->clone_empty ()};
387- }
368+ vectorized::Block new_block = in_block->clone_empty ();
388369 new_block.swap (*in_block);
389370 auto wrapper = BlockWrapper::create_shared (
390371 std::move (new_block),
@@ -430,10 +411,7 @@ Status BroadcastExchanger::get_block(RuntimeState* state, vectorized::Block* blo
430411Status AdaptivePassthroughExchanger::_passthrough_sink (RuntimeState* state,
431412 vectorized::Block* in_block,
432413 SinkInfo&& sink_info) {
433- vectorized::Block new_block;
434- if (!_free_blocks.try_dequeue (new_block)) {
435- new_block = {in_block->clone_empty ()};
436- }
414+ vectorized::Block new_block = in_block->clone_empty ();
437415 new_block.swap (*in_block);
438416 auto channel_id = ((*sink_info.channel_id )++) % _num_partitions;
439417 _enqueue_data_and_set_ready (
0 commit comments