diff options
-rw-r--r-- | libcrystfel/src/profile.c | 10 | ||||
-rw-r--r-- | libcrystfel/src/profile.h | 2 | ||||
-rw-r--r-- | src/im-sandbox.c | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/libcrystfel/src/profile.c b/libcrystfel/src/profile.c index 79228b34..82f0217f 100644 --- a/libcrystfel/src/profile.c +++ b/libcrystfel/src/profile.c @@ -166,7 +166,7 @@ static void free_profile_block(struct _profile_block *b) } -void profile_print_and_reset() +void profile_print_and_reset(int worker_id) { char *buf; char *buf2; @@ -187,10 +187,12 @@ void profile_print_and_reset() stop_profile_block(pd->root); buf = format_profile_block(pd->root); - buf2 = malloc(2+strlen(buf)); - strcpy(buf2, buf); - strcat(buf2, "\n"); + buf2 = malloc(8+strlen(buf)); + size_t len = 8+strlen(buf); + snprintf(buf2, len, "%i %s\n", worker_id, buf); write(STDOUT_FILENO, buf2, strlen(buf2)); + free(buf); + free(buf2); free_profile_block(pd->root); pd->root = start_profile_block("root"); diff --git a/libcrystfel/src/profile.h b/libcrystfel/src/profile.h index 183528ce..61ef20c3 100644 --- a/libcrystfel/src/profile.h +++ b/libcrystfel/src/profile.h @@ -35,7 +35,7 @@ */ extern void profile_init(); -extern void profile_print_and_reset(); +extern void profile_print_and_reset(int worker_id); extern void profile_start(const char *name); extern void profile_end(const char *name); diff --git a/src/im-sandbox.c b/src/im-sandbox.c index 8e1e5004..4337e4a2 100644 --- a/src/im-sandbox.c +++ b/src/im-sandbox.c @@ -526,7 +526,7 @@ static int run_work(const struct index_args *iargs, Stream *st, * eventually be freed by image_free() under process_image(). */ if ( sb->profile ) { - profile_print_and_reset(); + profile_print_and_reset(cookie); } } |