Halide 21.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
synchronization_common.h File Reference
#include "HalideRuntime.h"
#include "printer.h"
#include "scoped_spin_lock.h"
#include "runtime_atomics.h"

Go to the source code of this file.

Classes

class  Halide::Runtime::Internal::Synchronization::spin_control
struct  Halide::Runtime::Internal::Synchronization::word_lock_queue_data
class  Halide::Runtime::Internal::Synchronization::word_lock
struct  Halide::Runtime::Internal::Synchronization::queue_data
struct  Halide::Runtime::Internal::Synchronization::hash_bucket
struct  Halide::Runtime::Internal::Synchronization::hash_table
struct  Halide::Runtime::Internal::Synchronization::bucket_pair
struct  Halide::Runtime::Internal::Synchronization::validate_action
struct  Halide::Runtime::Internal::Synchronization::parking_control
struct  Halide::Runtime::Internal::Synchronization::mutex_parking_control
class  Halide::Runtime::Internal::Synchronization::fast_mutex
struct  Halide::Runtime::Internal::Synchronization::signal_parking_control
struct  Halide::Runtime::Internal::Synchronization::broadcast_parking_control
struct  Halide::Runtime::Internal::Synchronization::wait_parking_control
class  Halide::Runtime::Internal::Synchronization::fast_cond
struct  halide_mutex_array

Namespaces

namespace  Halide
 This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
namespace  Halide::Runtime
namespace  Halide::Runtime::Internal
namespace  Halide::Runtime::Internal::Synchronization

Macros

#define TSAN_ANNOTATIONS   0

Functions

WEAK hash_bucketHalide::Runtime::Internal::Synchronization::lock_bucket (uintptr_t addr)
WEAK bucket_pair Halide::Runtime::Internal::Synchronization::lock_bucket_pair (uintptr_t addr_from, uintptr_t addr_to)
WEAK void Halide::Runtime::Internal::Synchronization::unlock_bucket_pair (bucket_pair &buckets)
WEAK void halide_mutex_lock (halide_mutex *mutex)
 A basic set of mutex and condition variable functions, which call platform specific code for mutual exclusion.
WEAK void halide_mutex_unlock (halide_mutex *mutex)
WEAK void halide_cond_broadcast (struct halide_cond *cond)
WEAK void halide_cond_signal (struct halide_cond *cond)
WEAK void halide_cond_wait (struct halide_cond *cond, struct halide_mutex *mutex)
WEAK halide_mutex_arrayhalide_mutex_array_create (uint64_t sz)
WEAK void halide_mutex_array_destroy (void *user_context, void *array)
WEAK int halide_mutex_array_lock (struct halide_mutex_array *array, int entry)
WEAK int halide_mutex_array_unlock (struct halide_mutex_array *array, int entry)

Variables

constexpr int Halide::Runtime::Internal::Synchronization::LOAD_FACTOR = 4
constexpr int Halide::Runtime::Internal::Synchronization::HASH_TABLE_SIZE = MAX_THREADS * LOAD_FACTOR
WEAK hash_table Halide::Runtime::Internal::Synchronization::table
constexpr int Halide::Runtime::Internal::Synchronization::HASH_TABLE_BITS = 10

Macro Definition Documentation

◆ TSAN_ANNOTATIONS

#define TSAN_ANNOTATIONS   0

Definition at line 34 of file synchronization_common.h.

Function Documentation

◆ halide_mutex_lock()

◆ halide_mutex_unlock()

◆ halide_cond_broadcast()

◆ halide_cond_signal()

WEAK void halide_cond_signal ( struct halide_cond * cond)

◆ halide_cond_wait()

WEAK void halide_cond_wait ( struct halide_cond * cond,
struct halide_mutex * mutex )

◆ halide_mutex_array_create()

WEAK halide_mutex_array * halide_mutex_array_create ( uint64_t sz)

◆ halide_mutex_array_destroy()

WEAK void halide_mutex_array_destroy ( void * user_context,
void * array )

Definition at line 933 of file synchronization_common.h.

References halide_mutex_array::array, halide_free(), and WEAK.

◆ halide_mutex_array_lock()

WEAK int halide_mutex_array_lock ( struct halide_mutex_array * array,
int entry )

◆ halide_mutex_array_unlock()

WEAK int halide_mutex_array_unlock ( struct halide_mutex_array * array,
int entry )