mirror of git://gcc.gnu.org/git/gcc.git
Fix og9 "Fix hang when running oacc exec with CUDA 9.0 nvprof"
Compared to the original og7 version, and still-good og8 version, the og9 version of this patch did get its code altered in a way so that it no longer resolves the problem it's meant to resolve -- the hang was back. libgomp/ * oacc-init.c (acc_init_1): Move 'acc_init_state' logic to where it belongs.
This commit is contained in:
parent
34fdecb2eb
commit
9ae129017c
|
|
@ -1,3 +1,8 @@
|
||||||
|
2020-03-25 Thomas Schwinge <thomas@codesourcery.com>
|
||||||
|
|
||||||
|
* oacc-init.c (acc_init_1): Move 'acc_init_state' logic to where
|
||||||
|
it belongs.
|
||||||
|
|
||||||
2019-11-22 Kwok Cheung Yeung <kcy@codesourcery.com>
|
2019-11-22 Kwok Cheung Yeung <kcy@codesourcery.com>
|
||||||
|
|
||||||
* testsuite/libgomp.oacc-fortran/lib-16.f90: Fix async-safety issue.
|
* testsuite/libgomp.oacc-fortran/lib-16.f90: Fix async-safety issue.
|
||||||
|
|
|
||||||
|
|
@ -231,6 +231,11 @@ acc_dev_num_out_of_range (acc_device_t d, int ord, int ndevs)
|
||||||
static struct gomp_device_descr *
|
static struct gomp_device_descr *
|
||||||
acc_init_1 (acc_device_t d, acc_construct_t parent_construct, int implicit)
|
acc_init_1 (acc_device_t d, acc_construct_t parent_construct, int implicit)
|
||||||
{
|
{
|
||||||
|
gomp_mutex_lock (&acc_init_state_lock);
|
||||||
|
acc_init_state = initializing;
|
||||||
|
acc_init_thread = pthread_self ();
|
||||||
|
gomp_mutex_unlock (&acc_init_state_lock);
|
||||||
|
|
||||||
bool check_not_nested_p;
|
bool check_not_nested_p;
|
||||||
if (implicit)
|
if (implicit)
|
||||||
{
|
{
|
||||||
|
|
@ -293,11 +298,6 @@ acc_init_1 (acc_device_t d, acc_construct_t parent_construct, int implicit)
|
||||||
struct gomp_device_descr *base_dev, *acc_dev;
|
struct gomp_device_descr *base_dev, *acc_dev;
|
||||||
int ndevs;
|
int ndevs;
|
||||||
|
|
||||||
gomp_mutex_lock (&acc_init_state_lock);
|
|
||||||
acc_init_state = initializing;
|
|
||||||
acc_init_thread = pthread_self ();
|
|
||||||
gomp_mutex_unlock (&acc_init_state_lock);
|
|
||||||
|
|
||||||
base_dev = resolve_device (d, true);
|
base_dev = resolve_device (d, true);
|
||||||
|
|
||||||
ndevs = base_dev->get_num_devices_func ();
|
ndevs = base_dev->get_num_devices_func ();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue