Home ⌂Doc Index ◂Up ▴
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>

Inheritance diagram for tbb::strict_ppl::internal::micro_queue_pop_finalizer< T >:
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
 

Additional Inherited Members

- Private Member Functions inherited from tbb::internal::no_copy
 no_copy (const no_copy &)=delete
 
 no_copy ()=default
 

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.

◆ ~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 }
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
virtual void deallocate_page(concurrent_queue_rep_base::page *p)=0
bool is_valid_page(const concurrent_queue_rep_base::page *p)
void const char const char int ITT_FORMAT __itt_group_sync p
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
friend class scoped_lock
Definition: spin_mutex.h:179

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:

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.