Parcourir la source

- address a Helgrind comment
- add a memory fence before polling

Olivier Aumage il y a 10 ans
Parent
commit
76b420bcb3
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      src/core/jobs.c

+ 6 - 1
src/core/jobs.c

@@ -161,7 +161,12 @@ int _starpu_test_job_termination(struct _starpu_job *j)
 {
 	STARPU_ASSERT(j->task);
 	STARPU_ASSERT(!j->task->detach);
-	return (j->terminated == 2);
+	/* Disable Helgrind race complaint, since we really just want to poll j->terminated */
+	STARPU_HG_DISABLE_CHECKING(*j);
+	STARPU_SYNCHRONIZE();
+	int ret = (j->terminated == 2);
+	STARPU_HG_ENABLE_CHECKING(*j);
+	return ret;
 }
 void _starpu_job_prepare_for_continuation_ext(struct _starpu_job *j, unsigned continuation_resubmit,
 		void (*continuation_callback_on_sleep)(void *arg), void *continuation_callback_on_sleep_arg)