Browse Source

revert 14611: remove now useless special case, it is actually still needed

Samuel Thibault 10 years ago
parent
commit
a29008b72a
1 changed files with 11 additions and 1 deletions
  1. 11 1
      src/drivers/cuda/driver_cuda.c

+ 11 - 1
src/drivers/cuda/driver_cuda.c

@@ -218,7 +218,17 @@ void starpu_cuda_set_device(unsigned devid STARPU_ATTRIBUTE_UNUSED)
 #if !defined(HAVE_CUDA_MEMCPY_PEER) && defined(HAVE_CUDA_GL_INTEROP_H)
 done:
 #endif
-	if (STARPU_UNLIKELY(cures))
+	if (STARPU_UNLIKELY(cures
+#ifdef STARPU_OPENMP
+		/* When StarPU is used as Open Runtime support,
+		 * starpu_omp_shutdown() will usually be called from a
+		 * destructor, in which case cudaThreadExit() reports a
+		 * cudaErrorCudartUnloading here. There should not
+		 * be any remaining tasks running at this point so
+		 * we can probably ignore it without much consequences. */
+		&& cures != cudaErrorCudartUnloading
+#endif /* STARPU_OPENMP */
+				))
 		STARPU_CUDA_REPORT_ERROR(cures);
 #endif
 }