tbb::internal::micro_queue_pop_finalizer Class Reference
Inheritance diagram for tbb::internal::micro_queue_pop_finalizer:
Collaboration diagram for tbb::internal::micro_queue_pop_finalizer:

## Public Member Functions

| micro_queue_pop_finalizer (micro_queue &queue, concurrent_queue_base &b, ticket k, page *p)
| ~micro_queue_pop_finalizer ()

## Private Types

typedef concurrent_queue_base::page | page

## Private Attributes

ticket | my_ticket
micro_queue & | my_queue
page * | my_page
concurrent_queue_base & | base

## Additional Inherited Members

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

## Detailed Description

Definition at line 77 of file concurrent_queue.cpp.

## Member Typedef Documentation

## page

typedef concurrent_queue_base::page tbb::internal::micro_queue_pop_finalizer::page

private

Definition at line 78 of file concurrent_queue.cpp.

## Constructor & Destructor Documentation

## micro_queue_pop_finalizer()

tbb::internal::micro_queue_pop_finalizer::micro_queue_pop_finalizer | ( | micro_queue & | queue,
|  | concurrent_queue_base & | b,
|  | ticket | k,
|  | page * | p
| ) |  |

inline

Definition at line 84 of file concurrent_queue.cpp.

:
my_ticket(k), my_queue(queue), my_page(p), base(b)
{}
p
void const char const char int ITT_FORMAT __itt_group_sync p
Definition: ittnotify_static.h:91
tbb::internal::micro_queue_pop_finalizer::my_page
page * my_page
Definition: concurrent_queue.cpp:81
tbb::internal::micro_queue_pop_finalizer::my_queue
micro_queue & my_queue
Definition: concurrent_queue.cpp:80
tbb::internal::micro_queue_pop_finalizer::base
concurrent_queue_base & base
Definition: concurrent_queue.cpp:82
tbb::internal::micro_queue_pop_finalizer::my_ticket
ticket my_ticket
Definition: concurrent_queue.cpp:79

## ~micro_queue_pop_finalizer()

tbb::internal::micro_queue_pop_finalizer::~micro_queue_pop_finalizer | ( |  | ) |

inline

Definition at line 87 of file concurrent_queue.cpp.

{
page* p = my_page;
if( p ) {
spin_mutex::scoped_lock lock( my_queue.page_mutex );
page* q = p->next;
my_queue.head_page = q;
if( !q ) {
my_queue.tail_page = NULL;
}
}
my_queue.head_counter = my_ticket;
if( p )
base.deallocate_page( p );
}
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::internal::concurrent_queue_base_v3::deallocate_page
virtual void deallocate_page(page *p)=0
custom de-allocator
tbb::spin_mutex::scoped_lock
friend class scoped_lock
Definition: spin_mutex.h:179
tbb::internal::micro_queue::tail_page
atomic< page * > tail_page
Definition: concurrent_queue.cpp:55
tbb::internal::micro_queue::head_page
atomic< page * > head_page
Definition: concurrent_queue.cpp:52
tbb::internal::micro_queue::head_counter
atomic< ticket > head_counter
Definition: concurrent_queue.cpp:53
tbb::internal::micro_queue::page_mutex
spin_mutex page_mutex
Definition: concurrent_queue.cpp:58
tbb::internal::micro_queue_pop_finalizer::page
concurrent_queue_base::page page
Definition: concurrent_queue.cpp:78

References base, tbb::internal::concurrent_queue_base_v3::deallocate_page(), tbb::internal::micro_queue::head_counter, tbb::internal::micro_queue::head_page, lock, my_page, my_queue, my_ticket, p, tbb::internal::micro_queue::page_mutex, and tbb::internal::micro_queue::tail_page.

Here is the call graph for this function:

## Member Data Documentation

## base

concurrent_queue_base& tbb::internal::micro_queue_pop_finalizer::base

private

Definition at line 82 of file concurrent_queue.cpp.

Referenced by ~micro_queue_pop_finalizer().

## my_page

page* tbb::internal::micro_queue_pop_finalizer::my_page

private

Definition at line 81 of file concurrent_queue.cpp.

Referenced by ~micro_queue_pop_finalizer().

## my_queue

micro_queue& tbb::internal::micro_queue_pop_finalizer::my_queue

private

Definition at line 80 of file concurrent_queue.cpp.

Referenced by ~micro_queue_pop_finalizer().

## my_ticket

ticket tbb::internal::micro_queue_pop_finalizer::my_ticket

private

Definition at line 79 of file concurrent_queue.cpp.

Referenced by ~micro_queue_pop_finalizer().

The documentation for this class was generated from the following file:

- concurrent_queue.cpp

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.