Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::strict_ppl::internal::micro_queue_pop_finalizer< T > Class Template Reference

#include <_concurrent_queue_impl.h>

Collaboration diagram for tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >:

Public Member Functions

 micro_queue_pop_finalizer (micro_queue< T > &queue, concurrent_queue_base_v3< T > &b, ticket k, page *p)
 
 ~micro_queue_pop_finalizer ()
 

Private Types

typedef concurrent_queue_rep_base::page page
 

Private Attributes

ticket my_ticket
 
micro_queue< T > & my_queue
 
pagemy_page
 
concurrent_queue_page_allocatorallocator
 

Detailed Description

template<typename T>
class tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >

Definition at line 59 of file _concurrent_queue_impl.h.

Member Typedef Documentation

◆ page

Definition at line 360 of file _concurrent_queue_impl.h.

Constructor & Destructor Documentation

◆ micro_queue_pop_finalizer()

template<typename T >
tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >::micro_queue_pop_finalizer ( micro_queue< T > &  queue,
concurrent_queue_base_v3< T > &  b,
ticket  k,
page p 
)
inline

Definition at line 366 of file _concurrent_queue_impl.h.

366  :
367  my_ticket(k), my_queue(queue), my_page(p), allocator(b)
368  {}

◆ ~micro_queue_pop_finalizer()

Definition at line 373 of file _concurrent_queue_impl.h.

373  {
374  page* p = my_page;
375  if( is_valid_page(p) ) {
376  spin_mutex::scoped_lock lock( my_queue.page_mutex );
377  page* q = p->next;
378  my_queue.head_page = q;
379  if( !is_valid_page(q) ) {
380  my_queue.tail_page = NULL;
381  }
382  }
384  if( is_valid_page(p) ) {
386  }
387 }

References tbb::strict_ppl::internal::is_valid_page(), tbb::internal::itt_store_word_with_release(), lock, and p.

Here is the call graph for this function:

Member Data Documentation

◆ allocator

Definition at line 364 of file _concurrent_queue_impl.h.

◆ my_page

template<typename T >
page* tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >::my_page
private

Definition at line 363 of file _concurrent_queue_impl.h.

◆ my_queue

template<typename T >
micro_queue<T>& tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >::my_queue
private

Definition at line 362 of file _concurrent_queue_impl.h.

◆ my_ticket

template<typename T >
ticket tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >::my_ticket
private

Definition at line 361 of file _concurrent_queue_impl.h.


The documentation for this class was generated from the following file:
tbb::strict_ppl::internal::concurrent_queue_page_allocator::deallocate_page
virtual void deallocate_page(concurrent_queue_rep_base::page *p)=0
tbb::strict_ppl::internal::is_valid_page
bool is_valid_page(const concurrent_queue_rep_base::page *p)
Definition: _concurrent_queue_impl.h:102
tbb::internal::itt_store_word_with_release
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
Definition: tbb_profiling.h:157
tbb::strict_ppl::internal::micro_queue_pop_finalizer::my_ticket
ticket my_ticket
Definition: _concurrent_queue_impl.h:361
tbb::spin_mutex::scoped_lock
friend class scoped_lock
Definition: spin_mutex.h:179
lock
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void * lock
Definition: ittnotify_static.h:121
tbb::strict_ppl::internal::micro_queue_pop_finalizer::page
concurrent_queue_rep_base::page page
Definition: _concurrent_queue_impl.h:360
tbb::strict_ppl::internal::micro_queue_pop_finalizer::allocator
concurrent_queue_page_allocator & allocator
Definition: _concurrent_queue_impl.h:364
tbb::strict_ppl::internal::micro_queue_pop_finalizer::my_page
page * my_page
Definition: _concurrent_queue_impl.h:363
tbb::strict_ppl::internal::micro_queue_pop_finalizer::my_queue
micro_queue< T > & my_queue
Definition: _concurrent_queue_impl.h:362
p
void const char const char int ITT_FORMAT __itt_group_sync p
Definition: ittnotify_static.h:91

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.