team.c File Reference

#include "libgomp.h"
#include <stdlib.h>
#include <string.h>

Include dependency graph for team.c:

Go to the source code of this file.

Data Structures

struct  gomp_thread_start_data

Functions

void ompc_team_start (uint loop_bounds) __attribute__((weak))
void ompc_team_end ()
gomp_teamgomp_new_team (unsigned nthreads)
static void free_team (struct gomp_team *team)
static struct gomp_thread_poolgomp_new_thread_pool (void)
static void gomp_free_pool_helper (void *thread_pool)
static void gomp_free_thread (void *arg __attribute__((unused)))
void gomp_team_start (void(*fn)(void *), void *data, unsigned nthreads, struct gomp_team *team)
void gomp_team_end (void)
static void __attribute__ ((constructor))
static void __attribute__ ((destructor))
gomp_task_icvgomp_new_icv (void)

Variables

pthread_attr_t gomp_thread_attr
pthread_key_t gomp_thread_destructor
pthread_key_t gomp_tls_key


Function Documentation

static void __attribute__ ( (destructor)   )  [static]

Definition at line 557 of file team.c.

References gomp_thread_destructor.

static void __attribute__ ( (constructor)   )  [static]

Definition at line 534 of file team.c.

References gomp_fatal(), gomp_free_thread(), gomp_sem_init(), gomp_thread_destructor, gomp_tls_key, and thr.

Here is the call graph for this function:

static void free_team ( struct gomp_team team  )  [static]

Definition at line 198 of file team.c.

References gomp_team::barrier, gomp_barrier_destroy(), gomp_mutex_destroy(), and gomp_team::task_lock.

Referenced by gomp_free_thread(), and gomp_team_end().

Here is the call graph for this function:

Here is the caller graph for this function:

static void gomp_free_pool_helper ( void *  thread_pool  )  [static]

Definition at line 219 of file team.c.

References gomp_barrier_wait_last(), gomp_sem_destroy(), and gomp_thread_pool::threads_dock.

Referenced by gomp_free_thread().

Here is the call graph for this function:

Here is the caller graph for this function:

static void gomp_free_thread ( void *arg   __attribute__((unused))  )  [static]

Definition at line 231 of file team.c.

References free_team(), gomp_barrier_destroy(), gomp_barrier_wait(), gomp_end_task(), gomp_free_pool_helper(), gomp_thread(), i, gomp_thread_pool::last_team, nthr, thr, gomp_thread_pool::threads, gomp_thread_pool::threads_dock, and gomp_thread_pool::threads_used.

Referenced by __attribute__().

Here is the call graph for this function:

Here is the caller graph for this function:

struct gomp_task_icv* gomp_new_icv ( void   ) 

Definition at line 566 of file team.c.

References gomp_global_icv, gomp_init_task(), gomp_malloc(), gomp_thread(), gomp_thread_destructor, gomp_task::icv, and thr.

Referenced by gomp_icv().

Here is the call graph for this function:

Here is the caller graph for this function:

struct gomp_team* gomp_new_team ( unsigned  nthreads  ) 

Definition at line 155 of file team.c.

References gomp_barrier_init(), gomp_init_work_share(), gomp_malloc(), gomp_mutex_init(), gomp_sem_init(), i, gomp_team::implicit_task, and gomp_team::ordered_release.

Referenced by gomp_parallel_loop_start(), GOMP_parallel_sections_start(), and GOMP_parallel_start().

Here is the call graph for this function:

Here is the caller graph for this function:

static struct gomp_thread_pool* gomp_new_thread_pool ( void   )  [static]

Definition at line 207 of file team.c.

References gomp_malloc(), gomp_thread_pool::last_team, gomp_thread_pool::threads, gomp_thread_pool::threads_size, and gomp_thread_pool::threads_used.

Referenced by gomp_team_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_team_end ( void   ) 

Definition at line 477 of file team.c.

References gomp_team::barrier, free_team(), gomp_barrier_wait(), gomp_end_task(), gomp_fini_work_share(), gomp_managed_threads, gomp_mutex_destroy(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_remaining_threads_lock, gomp_sem_destroy(), gomp_team_barrier_wait(), gomp_thread(), gomp_thread_pool::last_team, gomp_team::master_release, gomp_work_share::next_alloc, gomp_work_share::next_ws, gomp_team::nthreads, gomp_team::prev_ts, thr, gomp_team::work_share_list_free_lock, and gomp_team::work_shares.

Referenced by GOMP_parallel_end().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_team_start ( void(*)(void *)  fn,
void *  data,
unsigned  nthreads,
struct gomp_team team 
)

Definition at line 271 of file team.c.

References gomp_barrier_init(), gomp_barrier_reinit(), gomp_global_icv, gomp_init_task(), gomp_new_thread_pool(), gomp_realloc(), gomp_thread(), gomp_thread_destructor, i, gomp_task::icv, gomp_team::implicit_task, gomp_team_state::level, n, nthr, gomp_team::ordered_release, gomp_team::prev_ts, thr, gomp_thread_pool::threads, gomp_thread_pool::threads_dock, gomp_thread_pool::threads_size, gomp_thread_pool::threads_used, and gomp_team::work_shares.

Referenced by gomp_parallel_loop_start(), GOMP_parallel_sections_start(), and GOMP_parallel_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void ompc_team_end (  ) 

Definition at line 70 of file team.c.

References gomp_team::barrier, data, gomp_barrier_wait(), gomp_barrier_wait_last(), gomp_finish_task(), gomp_sem_destroy(), gomp_sem_init(), gomp_team_barrier_wait(), gomp_tls_key, thr, gomp_thread_pool::threads, and gomp_thread_pool::threads_dock.

Here is the call graph for this function:

void ompc_team_start ( uint  loop_bounds  ) 


Variable Documentation

pthread_attr_t gomp_thread_attr

Definition at line 33 of file team.c.

Referenced by __attribute__().

pthread_key_t gomp_thread_destructor

Definition at line 36 of file team.c.

Referenced by __attribute__(), gomp_new_icv(), and gomp_team_start().

pthread_key_t gomp_tls_key

Definition at line 43 of file team.c.

Referenced by __attribute__(), and ompc_team_end().


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