Loading...
Searching...
No Matches
sort_data_handles.h File Reference
`#include <starpu.h>`
`#include <common/config.h>`
`#include <stdlib.h>`
`#include <stdarg.h>`
`#include <core/jobs.h>`
`#include <datawizard/coherency.h>`
`#include <datawizard/memalloc.h>`

Go to the source code of this file.

## Functions

void | _starpu_sort_task_handles (struct _starpu_data_descr descr[], unsigned nbuffers)
int | _starpu_handles_same_root (starpu_data_handle_t dataA, starpu_data_handle_t dataB)

## Function Documentation

## _starpu_sort_task_handles()

void _starpu_sort_task_handles | ( | struct _starpu_data_descr | descr[],
|  | unsigned | nbuffers
| ) |  |

To avoid deadlocks, we reorder the different buffers accessed to by the task so that we always grab the rw-lock associated to the handles in the same order.

## _starpu_handles_same_root()

int _starpu_handles_same_root | ( | starpu_data_handle_t | dataA,
|  | starpu_data_handle_t | dataB
| ) |  |

The reordering however puts alongside some different handles, just because they have the same root. When avoiding to lock/acquire/load the same handle several times, we need to keep looking among those.