> I think the right spot to fix this would be instead in initialize_icvs, > change the > icvs->wait_policy = 0; > in there to > icvs->wait_policy = -1; > That way it will be the default for all the devices, not just the > initial one.
It doesn't work, for the code that determines value of wait_policy: if (none != NULL && gomp_get_icv_flag (none->flags, GOMP_ICV_WAIT_POLICY)) wait_policy = none->icvs.wait_policy; else if (all != NULL && gomp_get_icv_flag (all->flags, GOMP_ICV_WAIT_POLICY)) wait_policy = all->icvs.wait_policy; gomp_get_icv_flag (none->flags, GOMP_ICV_WAIT_POLICY) returns true only when OMP_WAIT_POLICY is explicitly set, so the initial icvs->wait_policy could not affect the global wait_policy that used to set GOMP_SPINCOUNT.