StarPU Internal Handbook

Data Structures | Macros | Enumerations | Functions
tags.h File Reference
`#include <starpu.h>`
`#include <common/config.h>`
`#include <common/starpu_spinlock.h>`
`#include <core/dependencies/cg.h>`

Go to the source code of this file.

## Data Structures
struct | _starpu_tag

## Macros
#define | _STARPU_TAG_SIZE

## Enumerations
enum | _starpu_tag_state { STARPU_INVALID_STATE , STARPU_ASSOCIATED , STARPU_BLOCKED , STARPU_READY , STARPU_DONE }

## Functions
void | _starpu_init_tags (void)
void | _starpu_notify_tag_dependencies (struct _starpu_tag *tag)
void | _starpu_notify_job_start_tag_dependencies (struct _starpu_tag *tag, _starpu_notify_job_start_data *data)
void | _starpu_tag_declare (starpu_tag_t id, struct _starpu_job *job)
void | _starpu_tag_set_ready (struct _starpu_tag *tag)
unsigned | _starpu_submit_job_enforce_task_deps (struct _starpu_job *j)
void | _starpu_tag_clear (void)

## Data Structure Documentation

## ◆ _starpu_tag

struct _starpu_tag

Data Fields
struct _starpu_spinlock | lock | Lock for this structure. Locking order is in dependency order: a tag must not be locked before locking a tag it depends on
starpu_tag_t | id | an identifier for the task
enum _starpu_tag_state | state |
struct _starpu_cg_list | tag_successors |
struct _starpu_job * | job | which job is associated to the tag if any ?
unsigned | is_assigned |
unsigned | is_submitted |

## Enumeration Type Documentation

## ◆ _starpu_tag_state

enum _starpu_tag_state

Enumerator
STARPU_INVALID_STATE | this tag is not declared by any task
STARPU_ASSOCIATED | _starpu_tag_declare was called to associate the tag to a task
STARPU_BLOCKED | some task dependencies are not fulfilled yet
STARPU_READY | the task can be (or has been) submitted to the scheduler (all deps fulfilled)
STARPU_DONE | the task has been performed

## Function Documentation

## ◆ _starpu_tag_set_ready()

void _starpu_tag_set_ready | ( | struct _starpu_tag * | tag | ) |

lock should be taken, and this releases it