Halide 19.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 931 of file synchronization_common.h.

References halide_mutex_array::array, and halide_free().

◆ 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 )