Commit e38fdba4 by Julian Brown Committed by Julian Brown

oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for goacc_thread_lock on error paths.

	* oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
	goacc_thread_lock on error paths.
	* oacc-mem.c (lookup_host): Remove locking from function. Note
	locking requirement for caller in function comment.
	(lookup_dev): Likewise.
	(acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
	(acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
	(update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
	Add locking.

From-SVN: r222860
parent 5a0ff57c
2015-05-06 Julian Brown <julian@codesourcery.com>
* oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
goacc_thread_lock on error paths.
* oacc-mem.c (lookup_host): Remove locking from function. Note
locking requirement for caller in function comment.
(lookup_dev): Likewise.
(acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
(acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
(update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
Add locking.
2015-05-05 Thomas Schwinge <thomas@codesourcery.com>
PR testsuite/65205
......
......@@ -217,11 +217,17 @@ acc_shutdown_1 (acc_device_t d)
/* This would mean the user is shutting down OpenACC in the middle of an
"acc data" pragma. Likely not intentional. */
if (walk->mapped_data)
gomp_fatal ("shutdown in 'acc data' region");
{
gomp_mutex_unlock (&goacc_thread_lock);
gomp_fatal ("shutdown in 'acc data' region");
}
/* Similarly, if this happens then user code has done something weird. */
if (walk->saved_bound_dev)
gomp_fatal ("shutdown during host fallback");
{
gomp_mutex_unlock (&goacc_thread_lock);
gomp_fatal ("shutdown during host fallback");
}
if (walk->dev)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment