[Openmp-commits] [openmp] r258570 - Merging r258528:

Jonathan Peyton via Openmp-commits openmp-commits at lists.llvm.org
Fri Jan 22 14:23:55 PST 2016


Author: jlpeyton
Date: Fri Jan 22 16:23:55 2016
New Revision: 258570

URL: http://llvm.org/viewvc/llvm-project?rev=258570&view=rev
Log:
Merging r258528:
------------------------------------------------------------------------
r258528 | jlpeyton | 2016-01-22 13:16:14 -0600 (Fri, 22 Jan 2016) | 9 lines

Add missing cleanup code for cached indirect lock pool.

This change fixes one issue reported at https://llvm.org/bugs/show_bug.cgi?id=26184
There was missing cleanup code for the cached indirect lock pool. The change
will fix the reported case where it tries to initialize a lock after runtime
cleanup/reinitialization, but it is still possible that the user program runs
into another problem because most test programs have a call to __kmpc_set_lock
after cleanup/reinitialization without calling __kmpc_init_lock causing a crash/hang.

------------------------------------------------------------------------

Modified:
    openmp/branches/release_38/   (props changed)
    openmp/branches/release_38/runtime/src/kmp_lock.cpp

Propchange: openmp/branches/release_38/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 22 16:23:55 2016
@@ -1 +1 @@
-/openmp/trunk:257833,258169
+/openmp/trunk:257833,258169,258528

Modified: openmp/branches/release_38/runtime/src/kmp_lock.cpp
URL: http://llvm.org/viewvc/llvm-project/openmp/branches/release_38/runtime/src/kmp_lock.cpp?rev=258570&r1=258569&r2=258570&view=diff
==============================================================================
--- openmp/branches/release_38/runtime/src/kmp_lock.cpp (original)
+++ openmp/branches/release_38/runtime/src/kmp_lock.cpp Fri Jan 22 16:23:55 2016
@@ -3578,6 +3578,7 @@ __kmp_cleanup_indirect_user_locks()
             __kmp_free(ll->lock);
             ll->lock = NULL;
         }
+        __kmp_indirect_lock_pool[k] = NULL;
     }
     // Clean up the remaining undestroyed locks.
     for (i = 0; i < __kmp_i_lock_table.next; i++) {




More information about the Openmp-commits mailing list