diff options
| author | Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> | 2016-08-08 10:08:07 +0000 |
|---|---|---|
| committer | Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> | 2016-08-08 10:08:07 +0000 |
| commit | 69f8511f8f47c7fab6c8dda663d394b4176f93e5 (patch) | |
| tree | 08edc65cf1a54fa59516140562f5809953bbbc6b /openmp/runtime/src/kmp_error.c | |
| parent | cae9aeed3934c1f97d8628732bcd58968fe52656 (diff) | |
| download | bcm5719-llvm-69f8511f8f47c7fab6c8dda663d394b4176f93e5.tar.gz bcm5719-llvm-69f8511f8f47c7fab6c8dda663d394b4176f93e5.zip | |
__kmp_free_task: Fix for serial explicit tasks producing proxy tasks
Consider the following code which may be executed by a serial team:
int dep;
#pragma omp target nowait depend(out: dep)
{
sleep(1);
}
#pragma omp task depend(in: dep)
{
#pragma omp target nowait
{
sleep(1);
}
}
Here the explicit task may not be freed until the nested proxy task has
finished. The current code hasn't considered this and called __kmp_free_task
anyway which triggered an assert because of remaining incomplete children:
KMP_DEBUG_ASSERT( TCR_4(taskdata->td_incomplete_child_tasks) == 0 );
Differential Revision: https://reviews.llvm.org/D23115
llvm-svn: 277991
Diffstat (limited to 'openmp/runtime/src/kmp_error.c')
0 files changed, 0 insertions, 0 deletions

