Go to the documentation of this file.
18 .get_migr_pool = NULL,
60 p_data->event_freq = event_freq;
66 p_data->num_pools = num_pools;
73 memcpy(p_data->pools, p_sched->
pools,
sizeof(
ABT_pool) * num_pools);
81 p_sched->
data = p_data;
90 uint32_t work_count = 0;
104 pools = p_data->
pools;
110 for (i = 0; i < num_pools; i++) {
125 if (!run_cnt_nowait) {
147 if (!run_cnt_nowait || (++work_count >= event_freq)) {
197 int p1_access, p2_access;
202 if (p1_access > p2_access) {
204 }
else if (p1_access < p2_access) {
#define ABTI_CHECK_NULL_SCHED_PTR(p)
static ABTI_sched * ABTI_sched_get_ptr(ABT_sched sched)
ABT_sched_type type
Unused value.
static ABTI_global * ABTI_global_get_global(void)
static void sched_run(ABT_sched sched)
static int sched_init(ABT_sched sched, ABT_sched_config config)
#define ABTI_CHECK_ERROR(abt_errno)
struct ABT_sched_config_opaque * ABT_sched_config
Scheduler configuration handle type.
static sched_data * sched_data_get_ptr(void *data)
static int pool_get_access_num(ABT_pool *p_pool)
#define ABTI_IS_ERROR_CHECK_ENABLED
struct ABT_pool_opaque * ABT_pool
Pool handle type.
ABT_bool ABTI_sched_has_to_stop(ABTI_local **pp_local, ABTI_sched *p_sched)
struct ABT_sched_opaque * ABT_sched
Scheduler handle type.
ABT_pool_pop_wait_fn p_pop_wait
static int sched_free(ABT_sched)
static ABT_sched_def sched_basic_wait_def
static ABTU_ret_err int ABTU_malloc(size_t size, void **p_ptr)
uint32_t sched_event_freq
ABTU_ret_err int ABTI_sched_config_read(const ABTI_sched_config *p_config, int idx, void *p_val)
struct ABT_unit_opaque * ABT_unit
Work unit handle type for scheduling.
#define ABTI_ASSERT(cond)
static ABTI_local * ABTI_local_get_local(void)
#define ABT_SUCCESS
Error code: the routine returns successfully.
void ABTI_xstream_check_events(ABTI_xstream *p_xstream, ABTI_sched *p_sched)
static ABTI_local * ABTI_xstream_get_local(ABTI_xstream *p_xstream)
#define ABT_TRUE
True constant for ABT_bool.
static ABTI_pool * ABTI_pool_get_ptr(ABT_pool pool)
static ABT_unit ABTI_pool_pop(ABTI_pool *p_pool)
static int sched_cmp_pools(const void *p1, const void *p2)
static void ABTU_free(void *ptr)
A struct that defines a scheduler.
void ABTI_xstream_run_thread(ABTI_global *p_global, ABTI_xstream **pp_local_xstream, ABTI_thread *p_thread)
static ABTI_thread * ABTI_unit_get_thread(ABTI_global *p_global, ABT_unit unit)
ABT_sched_def * ABTI_sched_get_basic_wait_def(void)
static ABT_unit ABTI_pool_pop_wait(ABTI_pool *p_pool, double time_secs)
struct ABTI_local ABTI_local
static ABT_unit ABTI_pool_pop_timedwait(ABTI_pool *p_pool, double abstime_secs)
static ABTI_sched_config * ABTI_sched_config_get_ptr(ABT_sched_config config)
ABT_sched_config_var ABT_sched_basic_freq
Predefined ABT_sched_config_var to configure the frequency for checking events of the basic scheduler...
static ABTI_xstream * ABTI_local_get_xstream(ABTI_local *p_local)
static ABTU_noreturn void ABTU_unreachable(void)
static void sched_sort_pools(int num_pools, ABT_pool *pools)
ABT_pool_pop_timedwait_fn p_pop_timedwait
static double ABTI_get_wtime(void)
ABT_pool_access
Pool access type.