浏览代码

explain the user if the starpu directory can not be built

Samuel Thibault 13 年之前
父节点
当前提交
16fa68af79
共有 1 个文件被更改,包括 39 次插入9 次删除
  1. 39 9
      src/core/perfmodel/perfmodel.c

+ 39 - 9
src/core/perfmodel/perfmodel.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010, 2011  Université de Bordeaux 1
+ * Copyright (C) 2009-2012  Université de Bordeaux 1
  * Copyright (C) 2010, 2011, 2012  Centre National de la Recherche Scientifique
  * Copyright (C) 2011  Télécom-SudParis
  *
@@ -390,12 +390,19 @@ void _starpu_create_sampling_directory_if_needed(void)
 
 		if (ret == -1)
 		{
-			STARPU_ASSERT(errno == EEXIST);
+			if (errno != EEXIST) {
+				fprintf(stderr,"Error making starpu directory %s:\n", perf_model_dir);
+				perror("mkdir");
+				STARPU_ASSERT(0);
+			}
 
 			/* make sure that it is actually a directory */
 			struct stat sb;
 			stat(perf_model_dir, &sb);
-			STARPU_ASSERT(S_ISDIR(sb.st_mode));
+			if (!S_ISDIR(sb.st_mode)) {
+				fprintf(stderr,"Error: %s is not a directory:\n", perf_model_dir);
+				STARPU_ASSERT(0);
+			}
 		}
 
 		/* Per-task performance models */
@@ -405,12 +412,20 @@ void _starpu_create_sampling_directory_if_needed(void)
 		ret = _starpu_mkpath(perf_model_dir_codelets, S_IRWXU);
 		if (ret == -1)
 		{
-			STARPU_ASSERT(errno == EEXIST);
+			if (errno != EEXIST) {
+				fprintf(stderr,"Error making starpu directory %s:\n", perf_model_dir);
+				perror("mkdir");
+				STARPU_ASSERT(0);
+			}
+
 
 			/* make sure that it is actually a directory */
 			struct stat sb;
 			stat(perf_model_dir_codelets, &sb);
-			STARPU_ASSERT(S_ISDIR(sb.st_mode));
+			if (!S_ISDIR(sb.st_mode)) {
+				fprintf(stderr,"Error: %s is not a directory:\n", perf_model_dir);
+				STARPU_ASSERT(0);
+			}
 		}
 
 		/* Performance of the memory subsystem */
@@ -420,12 +435,19 @@ void _starpu_create_sampling_directory_if_needed(void)
 		ret = _starpu_mkpath(perf_model_dir_bus, S_IRWXU);
 		if (ret == -1)
 		{
-			STARPU_ASSERT(errno == EEXIST);
+			if (errno != EEXIST) {
+				fprintf(stderr,"Error making starpu directory %s:\n", perf_model_dir);
+				perror("mkdir");
+				STARPU_ASSERT(0);
+			}
 
 			/* make sure that it is actually a directory */
 			struct stat sb;
 			stat(perf_model_dir_bus, &sb);
-			STARPU_ASSERT(S_ISDIR(sb.st_mode));
+			if (!S_ISDIR(sb.st_mode)) {
+				fprintf(stderr,"Error: %s is not a directory:\n", perf_model_dir);
+				STARPU_ASSERT(0);
+			}
 		}
 
 		/* Performance debug measurements */
@@ -435,12 +457,20 @@ void _starpu_create_sampling_directory_if_needed(void)
 		ret = _starpu_mkpath(perf_model_dir_debug, S_IRWXU);
 		if (ret == -1)
 		{
-			STARPU_ASSERT(errno == EEXIST);
+			if (errno != EEXIST) {
+				fprintf(stderr,"Error making starpu directory %s:\n", perf_model_dir);
+				perror("mkdir");
+				STARPU_ASSERT(0);
+			}
+
 
 			/* make sure that it is actually a directory */
 			struct stat sb;
 			stat(perf_model_dir_debug, &sb);
-			STARPU_ASSERT(S_ISDIR(sb.st_mode));
+			if (!S_ISDIR(sb.st_mode)) {
+				fprintf(stderr,"Error: %s is not a directory:\n", perf_model_dir);
+				STARPU_ASSERT(0);
+			}
 		}
 
 		directory_existence_was_tested = 1;