OMP and OMPI use OpenMP locks incorrectly
sion_paropen_ompi, user defined locks based on OpenMP's
omp_lock_t are registered via
sion_lock_register_lock_callbacks. The lock instance is initialized in a global variable and while the access is "protected" against data races by a
master construct, no effort is made to protect against repeated initialization. (And also
omp_destroy_lock is never called.) As a consequence, any program that calls
paropen_ompi more than once does not conform to the OpenMP specification.