#include "libgomp.h"
#include <stdlib.h>
#include <string.h>
Include dependency graph for task.c:
Go to the source code of this file.
Functions | |
void | gomp_init_task (struct gomp_task *task, struct gomp_task *parent_task, struct gomp_task_icv *prev_icv) |
void | gomp_end_task (void) |
static void | gomp_clear_parent (struct gomp_task *children) |
void | GOMP_task (void(*fn)(void *), void *data, void(*cpyfn)(void *, void *), long arg_size, long arg_align, bool if_clause, unsigned flags __attribute__((unused))) |
void | gomp_barrier_handle_tasks (gomp_barrier_state_t state) |
void | GOMP_taskwait (void) |
void gomp_barrier_handle_tasks | ( | gomp_barrier_state_t | state | ) |
Definition at line 186 of file task.c.
References gomp_team::barrier, gomp_task::children, gomp_task::fn, gomp_task::fn_data, gomp_barrier_last_thread(), gomp_clear_parent(), gomp_finish_task(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_sem_post(), GOMP_TASK_TIED, gomp_team_barrier_clear_task_pending(), gomp_team_barrier_done(), gomp_team_barrier_set_waiting_for_tasks(), gomp_team_barrier_waiting_for_tasks(), gomp_team_barrier_wake(), gomp_thread(), gomp_task::in_taskwait, gomp_task::kind, gomp_task::next_child, gomp_task::next_queue, gomp_task::parent, gomp_task::prev_child, gomp_task::prev_queue, gomp_team::task_count, gomp_team::task_lock, gomp_team::task_queue, gomp_team::task_running_count, gomp_task::taskwait_sem, and thr.
Referenced by gomp_team_barrier_wait_end().
Here is the call graph for this function:
Here is the caller graph for this function:
static void gomp_clear_parent | ( | struct gomp_task * | children | ) | [inline, static] |
Definition at line 61 of file task.c.
References gomp_task::children, gomp_task::next_child, and gomp_task::parent.
Referenced by gomp_barrier_handle_tasks(), GOMP_task(), and GOMP_taskwait().
Here is the caller graph for this function:
void gomp_end_task | ( | void | ) |
Definition at line 51 of file task.c.
References gomp_finish_task(), gomp_thread(), gomp_task::parent, and thr.
Referenced by gomp_free_thread(), GOMP_task(), and gomp_team_end().
Here is the call graph for this function:
Here is the caller graph for this function:
void gomp_init_task | ( | struct gomp_task * | task, | |
struct gomp_task * | parent_task, | |||
struct gomp_task_icv * | prev_icv | |||
) |
Definition at line 36 of file task.c.
References gomp_task::children, gomp_sem_init(), GOMP_TASK_IMPLICIT, gomp_task::icv, gomp_task::in_taskwait, gomp_task::in_tied_task, gomp_task::kind, gomp_task::parent, and gomp_task::taskwait_sem.
Referenced by gomp_new_icv(), GOMP_task(), and gomp_team_start().
Here is the call graph for this function:
Here is the caller graph for this function:
void GOMP_task | ( | void(*)(void *) | fn, | |
void * | data, | |||
void(*)(void *, void *) | cpyfn, | |||
long | arg_size, | |||
long | arg_align, | |||
bool | if_clause, | |||
unsigned flags | __attribute__((unused)) | |||
) |
Definition at line 79 of file task.c.
References gomp_team::barrier, buf, gomp_task::children, gomp_task::fn, gomp_clear_parent(), gomp_end_task(), gomp_icv(), gomp_init_task(), gomp_malloc(), gomp_mutex_lock(), gomp_mutex_unlock(), GOMP_TASK_IFFALSE, GOMP_TASK_WAITING, gomp_team_barrier_set_task_pending(), gomp_team_barrier_wake(), gomp_thread(), gomp_task::in_tied_task, gomp_task::kind, gomp_task::next_child, gomp_task::next_queue, gomp_team::nthreads, gomp_task::parent, gomp_task::prev_child, gomp_task::prev_queue, gomp_team::task_count, gomp_team::task_lock, gomp_team::task_queue, gomp_team::task_running_count, and thr.
Here is the call graph for this function:
void GOMP_taskwait | ( | void | ) |
Definition at line 281 of file task.c.
References gomp_team::barrier, gomp_task::children, gomp_task::fn, gomp_task::fn_data, gomp_clear_parent(), gomp_finish_task(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_sem_wait(), GOMP_TASK_TIED, GOMP_TASK_WAITING, gomp_team_barrier_clear_task_pending(), gomp_thread(), gomp_task::in_taskwait, gomp_task::kind, gomp_task::next_child, gomp_task::next_queue, gomp_task::prev_child, gomp_task::prev_queue, gomp_team::task_count, gomp_team::task_lock, gomp_team::task_queue, gomp_team::task_running_count, gomp_task::taskwait_sem, and thr.
Here is the call graph for this function: