task.c File Reference

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


Function Documentation

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:


Generated on Fri Apr 5 05:40:06 2013 for Libgomp by  doxygen 1.4.7