diff --git a/src/engine.c b/src/engine.c index 8e49324fb5212af2f07d7a887fa3a8a48d3273bf..6b93830de8ca03b7b8f8c8530200487bc364e81e 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2640,10 +2640,8 @@ void engine_maketasks(struct engine *e) { /* Set the tasks age. */ e->tasks_age = 0; - #ifdef SWIFT_DEBUG_CHECKS - if (e->ti_current == 0) - scheduler_write_dependency(sched); + if (e->ti_current == 0) scheduler_write_dependency(sched); #endif if (e->verbose) diff --git a/src/scheduler.c b/src/scheduler.c index 3333d7bbc469ea438c585f13c257b057523b1f50..3f229c7c5ad0bc54f47d6665a4c1290949aaff86 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -110,26 +110,24 @@ void scheduler_addunlock(struct scheduler *s, struct task *ta, s->unlocks[ind] = tb; s->unlock_ind[ind] = ta - s->tasks; atomic_inc(&s->completed_unlock_writes); - } void scheduler_write_dependency(struct scheduler *s) { #ifdef WITH_MPI - if (engine_rank != 0) - return; + if (engine_rank != 0) return; #endif - + message("Writing dependencies"); - + char filename[200] = "dependency_graph.dot"; - char tmp[200]; /* text to write */ + char tmp[200]; /* text to write */ char *line = NULL; /* buff for reading line */ size_t len = 0; ssize_t read; FILE *f; /* file containing the output */ int test; - int i,j; + int i, j; struct task *ta, *tb; @@ -143,49 +141,40 @@ void scheduler_write_dependency(struct scheduler *s) { fprintf(f, "\t node[nodesep=0.15];\n"); fclose(f); - + /* loop over all tasks */ - for(i=0; i < s->nr_tasks; i++) - { - ta = &s->tasks[i]; - - /* and theirs dependencies */ - for(j=0; j < ta->nr_unlock_tasks; j++) - { - tb = ta->unlock_tasks[j]; - - /* construct line */ - sprintf(tmp, "\t %s_%s->%s_%s;\n", - taskID_names[ta->type], - subtaskID_names[ta->subtype], - taskID_names[tb->type], - subtaskID_names[tb->subtype] - ); - - f = open_and_check_file(filename, "r"); - - /* check if dependency already written */ - test = 1; - /* loop over all lines */ - while (test && (read = getline(&line, &len, f)) != -1) - { - /* check if line == dependency word */ - if (strcmp(tmp, line) == 0) - test = 0; - } - - fclose(f); - - - /* Not written yet => write it */ - if (test) - { - f = open_and_check_file(filename, "a"); - fprintf(f, tmp); - fclose(f); - } - } + for (i = 0; i < s->nr_tasks; i++) { + ta = &s->tasks[i]; + + /* and theirs dependencies */ + for (j = 0; j < ta->nr_unlock_tasks; j++) { + tb = ta->unlock_tasks[j]; + + /* construct line */ + sprintf(tmp, "\t %s_%s->%s_%s;\n", taskID_names[ta->type], + subtaskID_names[ta->subtype], taskID_names[tb->type], + subtaskID_names[tb->subtype]); + + f = open_and_check_file(filename, "r"); + + /* check if dependency already written */ + test = 1; + /* loop over all lines */ + while (test && (read = getline(&line, &len, f)) != -1) { + /* check if line == dependency word */ + if (strcmp(tmp, line) == 0) test = 0; + } + + fclose(f); + + /* Not written yet => write it */ + if (test) { + f = open_and_check_file(filename, "a"); + fprintf(f, tmp); + fclose(f); + } } + } f = open_and_check_file(filename, "a"); fprintf(f, "}"); diff --git a/src/tools.c b/src/tools.c index 112b9266ee599d02f45887386479e239623620e9..1aedfc7c35fdd255ebdc2b72b0c70cdbf48fd511 100644 --- a/src/tools.c +++ b/src/tools.c @@ -23,11 +23,11 @@ #include "../config.h" /* Some standard headers. */ +#include <errno.h> #include <math.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> -#include <errno.h> /* This object's header. */ #include "tools.h" @@ -705,6 +705,7 @@ int compare_particles(struct part a, struct part b, double threshold) { FILE *open_and_check_file(const char *filename, const char *mode) { FILE *f = fopen(filename, mode); if (f == NULL) - error("Unable to open file '%s' in mode %s, error: %i", filename, mode, errno); + error("Unable to open file '%s' in mode %s, error: %i", filename, mode, + errno); return f; } diff --git a/src/tools.h b/src/tools.h index 6a287cdf9fabc19e40463962c75e55bebbb43db3..3a5f82292006e35d070b093343b6959017c186e4 100644 --- a/src/tools.h +++ b/src/tools.h @@ -54,5 +54,4 @@ int compare_particles(struct part a, struct part b, double threshold); FILE *open_and_check_file(const char *filename, const char *mode); - #endif /* SWIFT_TOOL_H */