tbb::internal::scheduler_state Struct Reference

`#include <scheduler.h>`

Inheritance diagram for tbb::internal::scheduler_state:
Collaboration diagram for tbb::internal::scheduler_state:

## Public Attributes

size_t | my_arena_index
| Index of the arena slot the scheduler occupies now, or occupied last time. More...
arena_slot * | my_arena_slot
| Pointer to the slot in the arena we own at the moment. More...
arena * | my_arena
| The arena that I own (if master) or am servicing at the moment (if worker) More...
task * | my_innermost_running_task
| Innermost task whose task::execute() is running. A dummy task on the outermost level. More...
mail_inbox | my_inbox
affinity_id | my_affinity_id
| The mailbox id assigned to this scheduler. More...
scheduler_properties | my_properties

## Detailed Description

Definition at line 77 of file scheduler.h.

## Member Data Documentation

## my_affinity_id

affinity_id tbb::internal::scheduler_state::my_affinity_id

The mailbox id assigned to this scheduler.

The id is assigned upon first entry into the arena. TODO: how are id's being garbage collected? TODO: master thread may enter arena and leave and then reenter. We want to give it the same affinity_id upon reentry, if practical. TODO: investigate if it makes sense to merge this field into scheduler_properties.

Definition at line 99 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::attach_mailbox(), tbb::internal::generic_scheduler::get_mailbox_task(), tbb::internal::generic_scheduler::get_task(), tbb::internal::generic_scheduler::prepare_for_spawning(), and tbb::internal::generic_scheduler::steal_task().

## my_arena

arena* tbb::internal::scheduler_state::my_arena

The arena that I own (if master) or am servicing at the moment (if worker)

Definition at line 85 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::acquire_task_pool(), tbb::internal::generic_scheduler::attach_arena(), tbb::internal::generic_scheduler::attach_mailbox(), tbb::internal::generic_scheduler::cleanup_master(), tbb::internal::generic_scheduler::get_task(), tbb::internal::generic_scheduler::leave_task_pool(), tbb::internal::generic_scheduler::local_spawn(), tbb::internal::generic_scheduler::lock_task_pool(), tbb::internal::generic_scheduler::max_threads_in_arena(), tbb::internal::generic_scheduler::nested_arena_entry(), tbb::internal::generic_scheduler::nested_arena_exit(), tbb::internal::generic_scheduler::prepare_for_spawning(), tbb::internal::generic_scheduler::publish_task_pool(), tbb::internal::generic_scheduler::steal_task(), tbb::internal::generic_scheduler::steal_task_from(), tbb::internal::custom_scheduler< SchedulerTraits >::tally_completion_of_predecessor(), and tbb::internal::generic_scheduler::wait_until_empty().

## my_arena_index

size_t tbb::internal::scheduler_state::my_arena_index

Index of the arena slot the scheduler occupies now, or occupied last time.

Definition at line 79 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::acquire_task_pool(), tbb::internal::generic_scheduler::attach_arena(), tbb::internal::generic_scheduler::generic_scheduler(), tbb::internal::generic_scheduler::leave_task_pool(), tbb::internal::generic_scheduler::nested_arena_exit(), tbb::internal::generic_scheduler::publish_task_pool(), and tbb::internal::generic_scheduler::steal_task().

## my_arena_slot

arena_slot* tbb::internal::scheduler_state::my_arena_slot

Pointer to the slot in the arena we own at the moment.

Definition at line 82 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::acquire_task_pool(), tbb::internal::generic_scheduler::attach_arena(), tbb::internal::generic_scheduler::cleanup_master(), tbb::internal::generic_scheduler::cleanup_scheduler(), tbb::internal::generic_scheduler::commit_relocated_tasks(), tbb::internal::generic_scheduler::commit_spawned_tasks(), tbb::internal::generic_scheduler::get_task(), tbb::internal::generic_scheduler::is_local_task_pool_quiescent(), tbb::internal::generic_scheduler::is_quiescent_local_task_pool_empty(), tbb::internal::generic_scheduler::is_quiescent_local_task_pool_reset(), tbb::internal::generic_scheduler::is_task_pool_published(), tbb::internal::generic_scheduler::leave_task_pool(), tbb::internal::generic_scheduler::local_spawn(), tbb::internal::generic_scheduler::prepare_task_pool(), tbb::internal::generic_scheduler::publish_task_pool(), tbb::internal::generic_scheduler::release_task_pool(), and tbb::internal::generic_scheduler::reset_task_pool_and_leave().

## my_inbox

mail_inbox tbb::internal::scheduler_state::my_inbox

Definition at line 90 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::attach_arena(), tbb::internal::generic_scheduler::attach_mailbox(), and tbb::internal::generic_scheduler::get_mailbox_task().

## my_innermost_running_task

task* tbb::internal::scheduler_state::my_innermost_running_task

Innermost task whose task::execute() is running. A dummy task on the outermost level.

Definition at line 88 of file scheduler.h.

Referenced by tbb::internal::allocate_root_proxy::allocate(), tbb::internal::generic_scheduler::generic_scheduler(), tbb::internal::generic_scheduler::get_task(), tbb::internal::nested_arena_context::mimic_outermost_level(), tbb::internal::nested_arena_context::nested_arena_context(), tbb::internal::generic_scheduler::prepare_for_spawning(), tbb::task::self(), tbb::internal::generic_scheduler::steal_task(), and tbb::internal::nested_arena_context::~nested_arena_context().

## my_properties

scheduler_properties tbb::internal::scheduler_state::my_properties

Definition at line 101 of file scheduler.h.

Referenced by tbb::internal::generic_scheduler::cleanup_scheduler(), tbb::internal::generic_scheduler::generic_scheduler(), tbb::internal::generic_scheduler::init_stack_info(), tbb::internal::generic_scheduler::is_worker(), tbb::internal::nested_arena_context::mimic_outermost_level(), tbb::internal::nested_arena_context::nested_arena_context(), tbb::internal::generic_scheduler::outermost_level(), and tbb::internal::nested_arena_context::~nested_arena_context().

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

- scheduler.h

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.