Bladeren bron

allow calling _starpu_worker_relax_on/off from a non worker thread

Olivier Aumage 8 jaren geleden
bovenliggende
commit
b6eb712b22
1 gewijzigde bestanden met toevoegingen van 6 en 2 verwijderingen
  1. 6 2
      src/core/workers.h

+ 6 - 2
src/core/workers.h

@@ -918,7 +918,9 @@ static inline void _starpu_worker_unlock(int workerid)
  * but the scheduling has not yet been made or is already done */
 static inline void _starpu_worker_relax_on(void)
 {
-	int workerid = starpu_worker_get_id_check();
+	int workerid = starpu_worker_get_id();
+	if (workerid == -1)
+		return;
 	struct _starpu_worker *worker = _starpu_get_worker_struct(workerid);
 	STARPU_ASSERT(worker != NULL);
 	STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->sched_mutex);
@@ -930,7 +932,9 @@ static inline void _starpu_worker_relax_on(void)
 
 static inline void _starpu_worker_relax_off(void)
 {
-	int workerid = starpu_worker_get_id_check();
+	int workerid = starpu_worker_get_id();
+	if (workerid == -1)
+		return;
 	struct _starpu_worker *worker = _starpu_get_worker_struct(workerid);
 	STARPU_ASSERT(worker != NULL);
 	STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->sched_mutex);