diff options
author | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2016-06-13 17:36:40 +0000 |
---|---|---|
committer | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2016-06-13 17:36:40 +0000 |
commit | 93495de26501d4f2cb824d7368bc6009082f02c2 (patch) | |
tree | 00b85f7cc54bb6f287266fd7ee078aa46421ec57 /clang/lib/Basic/FileManager.cpp | |
parent | 248190ba69e834d7ffa9ecf64ed38da42ca34bf8 (diff) | |
download | llvm-93495de26501d4f2cb824d7368bc6009082f02c2.zip llvm-93495de26501d4f2cb824d7368bc6009082f02c2.tar.gz llvm-93495de26501d4f2cb824d7368bc6009082f02c2.tar.bz2 |
Fix crash when libomp loaded/unloaded multiple times
The problem scenario is the following:
A dynamic library, libfoo.so, depends on libomp.so (it creates parallel region
and calls some omp functions). An application has a loop where it dynamically
loads libfoo.so, calls the function from it, unloads libfoo.so. After several
loop iterations application crashes with the message about lack of resources
OMP: Error #34: System unable to allocate necessary resources for OMP thread:
The problem is that pthread_kill() was not followed by pthread_join() in case
of terminated thread. This patch fixes this problem for both worker and monitor
threads.
Differential Revision: http://reviews.llvm.org/D21200
llvm-svn: 272567
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
0 files changed, 0 insertions, 0 deletions