ARGOBOTS  7496202f85916e93d6d143320764c2aba5026d93
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Functions | Variables
thread.c File Reference
#include "abti.h"
Include dependency graph for thread.c:

Go to the source code of this file.

Functions

static ABTU_ret_err int ythread_create (ABTI_local *p_local, ABTI_pool *p_pool, void(*thread_func)(void *), void *arg, ABTI_thread_attr *p_attr, ABTI_thread_type thread_type, ABTI_sched *p_sched, ABT_bool push_pool, ABTI_ythread **pp_newthread)
 
static void thread_join (ABTI_local **pp_local, ABTI_thread *p_thread)
 
static void thread_free (ABTI_local *p_local, ABTI_thread *p_thread, ABT_bool free_unit)
 
static void thread_root_func (void *arg)
 
static void thread_main_sched_func (void *arg)
 
static ABTU_ret_err int thread_migrate_to_xstream (ABTI_local **pp_local, ABTI_thread *p_thread, ABTI_xstream *p_xstream)
 
static ABTU_ret_err int thread_migrate_to_pool (ABTI_local **p_local, ABTI_thread *p_thread, ABTI_pool *p_pool)
 
static ABT_unit_id thread_get_new_id (void)
 
static void thread_key_destructor_stackable_sched (void *p_value)
 
static void thread_key_destructor_migration (void *p_value)
 
int ABT_thread_create (ABT_pool pool, void(*thread_func)(void *), void *arg, ABT_thread_attr attr, ABT_thread *newthread)
 Create a new thread and return its handle through newthread. More...
 
int ABT_thread_create_on_xstream (ABT_xstream xstream, void(*thread_func)(void *), void *arg, ABT_thread_attr attr, ABT_thread *newthread)
 Create a new ULT associated with the target ES (xstream). More...
 
int ABT_thread_create_many (int num, ABT_pool *pool_list, void(**thread_func_list)(void *), void **arg_list, ABT_thread_attr attr, ABT_thread *newthread_list)
 Create a set of ULTs. More...
 
int ABT_thread_revive (ABT_pool pool, void(*thread_func)(void *), void *arg, ABT_thread *thread)
 Revive the ULT. More...
 
int ABT_thread_free (ABT_thread *thread)
 Release the thread object associated with thread handle. More...
 
int ABT_thread_free_many (int num, ABT_thread *thread_list)
 Release a set of ULT objects. More...
 
int ABT_thread_join (ABT_thread thread)
 Wait for thread to terminate. More...
 
int ABT_thread_join_many (int num_threads, ABT_thread *thread_list)
 Wait for a number of ULTs to terminate. More...
 
int ABT_thread_exit (void)
 The calling ULT terminates its execution. More...
 
int ABT_thread_cancel (ABT_thread thread)
 Request the cancellation of the target thread. More...
 
int ABT_thread_self (ABT_thread *thread)
 Return the handle of the calling ULT. More...
 
int ABT_thread_self_id (ABT_unit_id *id)
 Return the calling ULT's ID. More...
 
int ABT_thread_get_last_xstream (ABT_thread thread, ABT_xstream *xstream)
 Get the ES associated with the target thread. More...
 
int ABT_thread_get_state (ABT_thread thread, ABT_thread_state *state)
 Return the state of thread. More...
 
int ABT_thread_get_last_pool (ABT_thread thread, ABT_pool *pool)
 Return the last pool of ULT. More...
 
int ABT_thread_get_last_pool_id (ABT_thread thread, int *id)
 Get the last pool's ID of the ULT. More...
 
int ABT_thread_set_associated_pool (ABT_thread thread, ABT_pool pool)
 Set the associated pool for the target ULT. More...
 
int ABT_thread_yield_to (ABT_thread thread)
 Yield the processor from the current running thread to the specific thread. More...
 
int ABT_thread_yield (void)
 Yield the processor from the current running ULT back to the scheduler. More...
 
int ABT_thread_resume (ABT_thread thread)
 Resume the target ULT. More...
 
int ABT_thread_migrate_to_xstream (ABT_thread thread, ABT_xstream xstream)
 Migrate a thread to a specific ES. More...
 
int ABT_thread_migrate_to_sched (ABT_thread thread, ABT_sched sched)
 Migrate a thread to a specific scheduler. More...
 
int ABT_thread_migrate_to_pool (ABT_thread thread, ABT_pool pool)
 Migrate a thread to a specific pool. More...
 
int ABT_thread_migrate (ABT_thread thread)
 Request migration of the thread to an any available ES. More...
 
int ABT_thread_set_callback (ABT_thread thread, void(*cb_func)(ABT_thread thread, void *cb_arg), void *cb_arg)
 Set the callback function. More...
 
int ABT_thread_set_migratable (ABT_thread thread, ABT_bool flag)
 Set the ULT's migratability. More...
 
int ABT_thread_is_migratable (ABT_thread thread, ABT_bool *flag)
 Get the ULT's migratability. More...
 
int ABT_thread_is_primary (ABT_thread thread, ABT_bool *flag)
 Check if the target ULT is the primary ULT. More...
 
int ABT_thread_is_unnamed (ABT_thread thread, ABT_bool *flag)
 Check if the target ULT is unnamed. More...
 
int ABT_thread_equal (ABT_thread thread1, ABT_thread thread2, ABT_bool *result)
 Compare two ULT handles for equality. More...
 
int ABT_thread_get_stacksize (ABT_thread thread, size_t *stacksize)
 Get the ULT's stack size. More...
 
int ABT_thread_get_id (ABT_thread thread, ABT_unit_id *thread_id)
 Get the ULT's id. More...
 
int ABT_thread_set_arg (ABT_thread thread, void *arg)
 Set the argument for the ULT function. More...
 
int ABT_thread_get_arg (ABT_thread thread, void **arg)
 Retrieve the argument for the ULT function. More...
 
int ABT_thread_set_specific (ABT_thread thread, ABT_key key, void *value)
 Set the ULT-specific value associated with the key. More...
 
int ABT_thread_get_specific (ABT_thread thread, ABT_key key, void **value)
 Get the ULT-specific value associated with the key. More...
 
int ABT_thread_get_attr (ABT_thread thread, ABT_thread_attr *attr)
 Get attributes of the target ULT. More...
 

Variables

static ABTI_key g_thread_sched_key
 
static ABTI_key g_thread_mig_data_key
 
static ABTD_atomic_uint64 g_thread_id
 

Function Documentation

static void thread_free ( ABTI_local *  p_local,
ABTI_thread *  p_thread,
ABT_bool  free_unit 
)
inlinestatic

Definition at line 1814 of file thread.c.

static ABT_unit_id thread_get_new_id ( void  )
inlinestatic

Definition at line 2152 of file thread.c.

static void thread_join ( ABTI_local **  pp_local,
ABTI_thread *  p_thread 
)
inlinestatic
static void thread_key_destructor_migration ( void *  p_value)
static

Definition at line 1852 of file thread.c.

static void thread_key_destructor_stackable_sched ( void *  p_value)
static

Definition at line 1840 of file thread.c.

static void thread_main_sched_func ( void *  arg)
static

Definition at line 2070 of file thread.c.

static ABTU_ret_err int thread_migrate_to_pool ( ABTI_local **  p_local,
ABTI_thread *  p_thread,
ABTI_pool *  p_pool 
)
static
static ABTU_ret_err int thread_migrate_to_xstream ( ABTI_local **  pp_local,
ABTI_thread *  p_thread,
ABTI_xstream *  p_xstream 
)
static

Definition at line 2108 of file thread.c.

Referenced by ABT_thread_migrate(), and ABT_thread_migrate_to_xstream().

static void thread_root_func ( void *  arg)
static

Definition at line 2033 of file thread.c.

static ABTU_ret_err int ythread_create ( ABTI_local *  p_local,
ABTI_pool *  p_pool,
void(*)(void *)  thread_func,
void *  arg,
ABTI_thread_attr *  p_attr,
ABTI_thread_type  thread_type,
ABTI_sched *  p_sched,
ABT_bool  push_pool,
ABTI_ythread **  pp_newthread 
)
inlinestatic

Variable Documentation

ABTD_atomic_uint64 g_thread_id
static
Initial value:
=
ABTD_ATOMIC_UINT64_STATIC_INITIALIZER(0)

Definition at line 1593 of file thread.c.

ABTI_key g_thread_mig_data_key
static
Initial value:
=
ABTI_KEY_STATIC_INITIALIZER(thread_key_destructor_migration,
ABTI_KEY_ID_MIGRATION)
static void thread_key_destructor_migration(void *p_value)
Definition: thread.c:1852

Definition at line 33 of file thread.c.

ABTI_key g_thread_sched_key
static
Initial value:
=
ABTI_KEY_STATIC_INITIALIZER(thread_key_destructor_stackable_sched,
ABTI_KEY_ID_STACKABLE_SCHED)
static void thread_key_destructor_stackable_sched(void *p_value)
Definition: thread.c:1840

Definition at line 29 of file thread.c.