[OpenACC] Missing unlocking on error paths in attach/detach code

libgomp/
	* oacc-mem.c (acc_attach_async): Add missing gomp_mutex_unlock on
	error path.
	(goacc_detach_internal): Likewise.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
This commit is contained in:
Julian Brown 2020-05-22 15:16:04 -07:00 committed by Thomas Schwinge
parent 1e378edd8f
commit dc9541545d

View File

@ -887,7 +887,10 @@ acc_attach_async (void **hostaddr, int async)
n = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
if (n == NULL)
gomp_fatal ("struct not mapped for acc_attach");
{
gomp_mutex_unlock (&acc_dev->lock);
gomp_fatal ("struct not mapped for acc_attach");
}
gomp_attach_pointer (acc_dev, aq, &acc_dev->mem_map, n, (uintptr_t) hostaddr,
0, NULL);
@ -920,7 +923,10 @@ goacc_detach_internal (void **hostaddr, int async, bool finalize)
n = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
if (n == NULL)
gomp_fatal ("struct not mapped for acc_detach");
{
gomp_mutex_unlock (&acc_dev->lock);
gomp_fatal ("struct not mapped for acc_detach");
}
gomp_detach_pointer (acc_dev, aq, n, (uintptr_t) hostaddr, finalize, NULL);