Moves the freeing of the implicit task to above the freeing of all fast memory to prevent the double-free issue.
Details
Details
- Reviewers
pawosm01 AndreyChurbanov - Commits
- rG43fb3dac5991: Merging r287551: --------------------------------------------------------------…
rG7ca7ef047800: Fix for D25504 - segfault because of double free()-ing in shutdown code.
rOMP287551: Fix for D25504 - segfault because of double free()-ing in shutdown code.
rL287551: Fix for D25504 - segfault because of double free()-ing in shutdown code.
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I tested this change for few hours running superlu_taskdep and strassen_taskdep on different number of cores. Didn't fail, so we can assume it solves the problem.
BTW, don't you think that the task->td_dephash pointer should be NULLified after calling __kmp_dephash_free() on it in kmp_taskdeps.cpp line 380?
Comment Actions
BTW, don't you think that the task->td_dephash pointer should be NULLified after calling __kmp_dephash_free() on it in kmp_taskdeps.cpp line 380?
I agree. Keeping stale pointer is not good generally, regardless that it is not used. So, writing NULL should be safer. Of cause this cleanup can be done via a separate review.