Halide 22.0.0 Halide compiler and libraries

Public Member Functions | Protected Member Functions | List of all members
Halide::Runtime::Internal::Synchronization::parking_control Struct Reference

`#include <synchronization_common.h>`

Inheritance diagram for Halide::Runtime::Internal::Synchronization::parking_control:

## Public Member Functions
uintptr_t | park (uintptr_t addr)
uintptr_t | unpark_one (uintptr_t addr)
int | unpark_requeue (uintptr_t addr_from, uintptr_t addr_to, uintptr_t unpark_info)

## Protected Member Functions
virtual bool | validate (validate_action &action)
virtual void | before_sleep ()
virtual uintptr_t | unpark (int unparked, bool more_waiters)
virtual void | requeue_callback (const validate_action &action, bool one_to_wake, bool some_requeued)

## Detailed Description

Definition at line 426 of file synchronization_common.h.

## Member Function Documentation

## ◆ park()

WEAK uintptr_t Halide::Runtime::Internal::Synchronization::parking_control::park | ( | uintptr_t | addr | ) |

Definition at line 447 of file synchronization_common.h.

References before_sleep(), Halide::Runtime::Internal::Synchronization::hash_bucket::head, Halide::Runtime::Internal::Synchronization::validate_action::invalid_unpark_info, Halide::Runtime::Internal::Synchronization::lock_bucket(), Halide::Runtime::Internal::Synchronization::hash_bucket::mutex, Halide::Runtime::Internal::Synchronization::queue_data::next, Halide::Runtime::Internal::Synchronization::queue_data::parker, Halide::Runtime::Internal::Synchronization::queue_data::sleep_address, Halide::Runtime::Internal::Synchronization::hash_bucket::tail, Halide::Runtime::Internal::Synchronization::word_lock::unlock(), Halide::Runtime::Internal::Synchronization::queue_data::unpark_info, and validate().

Referenced by Halide::Runtime::Internal::Synchronization::fast_cond::wait().

## ◆ unpark_one()

WEAK uintptr_t Halide::Runtime::Internal::Synchronization::parking_control::unpark_one | ( | uintptr_t | addr | ) |

Definition at line 478 of file synchronization_common.h.

References Halide::Runtime::Internal::Synchronization::hash_bucket::head, Halide::Runtime::Internal::Synchronization::lock_bucket(), Halide::Runtime::Internal::Synchronization::hash_bucket::mutex, Halide::Runtime::Internal::Synchronization::queue_data::next, Halide::Runtime::Internal::Synchronization::queue_data::parker, Halide::Runtime::Internal::Synchronization::queue_data::sleep_address, Halide::Runtime::Internal::Synchronization::hash_bucket::tail, Halide::Runtime::Internal::Synchronization::word_lock::unlock(), unpark(), and Halide::Runtime::Internal::Synchronization::queue_data::unpark_info.

Referenced by Halide::Runtime::Internal::Synchronization::fast_cond::signal().

## ◆ unpark_requeue()

WEAK int Halide::Runtime::Internal::Synchronization::parking_control::unpark_requeue | ( | uintptr_t | addr_from,
|  | uintptr_t | addr_to,
|  | uintptr_t | unpark_info
| ) |  |

Definition at line 529 of file synchronization_common.h.

References Halide::Runtime::Internal::Synchronization::bucket_pair::from, Halide::Runtime::Internal::Synchronization::hash_bucket::head, Halide::Runtime::Internal::Synchronization::lock_bucket_pair(), Halide::Runtime::Internal::Synchronization::queue_data::next, Halide::Runtime::Internal::Synchronization::queue_data::parker, requeue_callback(), Halide::Runtime::Internal::Synchronization::queue_data::sleep_address, Halide::Runtime::Internal::Synchronization::hash_bucket::tail, Halide::Runtime::Internal::Synchronization::bucket_pair::to, Halide::Runtime::Internal::Synchronization::unlock_bucket_pair(), Halide::Runtime::Internal::Synchronization::queue_data::unpark_info, Halide::Runtime::Internal::Synchronization::validate_action::unpark_one, and validate().

Referenced by Halide::Runtime::Internal::Synchronization::fast_cond::broadcast().

## ◆ validate()

virtual bool Halide::Runtime::Internal::Synchronization::parking_control::validate | ( | validate_action & | action | ) |
| inline protected virtual

Reimplemented in Halide::Runtime::Internal::Synchronization::mutex_parking_control, Halide::Runtime::Internal::Synchronization::broadcast_parking_control, and Halide::Runtime::Internal::Synchronization::wait_parking_control.

Definition at line 432 of file synchronization_common.h.

Referenced by park(), and unpark_requeue().

## ◆ before_sleep()

virtual void Halide::Runtime::Internal::Synchronization::parking_control::before_sleep | ( |  | ) |
| inline protected virtual

Reimplemented in Halide::Runtime::Internal::Synchronization::wait_parking_control.

Definition at line 435 of file synchronization_common.h.

Referenced by park().

## ◆ unpark()

virtual uintptr_t Halide::Runtime::Internal::Synchronization::parking_control::unpark | ( | int | unparked,
|  | bool | more_waiters
| ) |  |
| inline protected virtual

Reimplemented in Halide::Runtime::Internal::Synchronization::mutex_parking_control, Halide::Runtime::Internal::Synchronization::signal_parking_control, and Halide::Runtime::Internal::Synchronization::wait_parking_control.

Definition at line 438 of file synchronization_common.h.

Referenced by unpark_one().

## ◆ requeue_callback()

virtual void Halide::Runtime::Internal::Synchronization::parking_control::requeue_callback | ( | const validate_action & | action,
|  | bool | one_to_wake,
|  | bool | some_requeued
| ) |  |
| inline protected virtual

Reimplemented in Halide::Runtime::Internal::Synchronization::broadcast_parking_control.

Definition at line 441 of file synchronization_common.h.

Referenced by unpark_requeue().

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

- src/runtime/synchronization_common.h