Просмотр исходного кода

Prevent STARPU_TASK_SET_MODE from setting codelet mode

This actually surprised us all, codelets should be considered readonly,
unless its mode is 0.
Antoine JEGO лет назад: 4
Родитель
Сommit
4a156dd30f
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      include/starpu_task.h

+ 3 - 1
include/starpu_task.h

@@ -1396,7 +1396,9 @@ struct starpu_task
 		if ((task)->cl->nbuffers == STARPU_VARIABLE_NBUFFERS || (task)->cl->nbuffers > STARPU_NMAXBUFS) \
 			if ((task)->dyn_modes) (task)->dyn_modes[i] = mode; else (task)->modes[i] = mode; \
 		else							\
-			STARPU_CODELET_SET_MODE((task)->cl, mode, i);	\
+			STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE((task)->cl, i)==mode,	\
+				"Task <%s> can't set its  %dth buffer mode and the codelet it derives from uses %d", \
+				(task)->cl->name, i, mode);	\
 	} while(0)
 
 /**