diff options
| author | J08nY | 2018-02-03 21:58:03 +0100 |
|---|---|---|
| committer | J08nY | 2018-02-03 21:58:03 +0100 |
| commit | dedb8c3f127a3198c45dd29221f524d1227c207a (patch) | |
| tree | 1178c0aa560960ee8ed6b7b2931288f24c775624 /src/io | |
| parent | ed7e99ebc7c50523e5a2c6f21c8f89028348da71 (diff) | |
| download | ecgen-dedb8c3f127a3198c45dd29221f524d1227c207a.tar.gz ecgen-dedb8c3f127a3198c45dd29221f524d1227c207a.tar.zst ecgen-dedb8c3f127a3198c45dd29221f524d1227c207a.zip | |
Fix some memory leaks in threaded invalid generation.
Diffstat (limited to 'src/io')
| -rw-r--r-- | src/io/output.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/io/output.h b/src/io/output.h index 6381812..1037c00 100644 --- a/src/io/output.h +++ b/src/io/output.h @@ -15,34 +15,53 @@ #ifdef DEBUG #include <inttypes.h> +#include <sys/syscall.h> +#include <sys/types.h> #include <time.h> -#define _debug_print(prefix) \ - fprintf(verbose, prefix); \ - struct timespec ts; \ - clock_gettime(CLOCK_MONOTONIC, &ts); \ - fprintf(verbose, "%" PRIdMAX ".%.9ld ", ts.tv_sec, ts.tv_nsec); +#define _debug_print(prefix) \ + fprintf(verbose, prefix); \ + struct timespec ts; \ + clock_gettime(CLOCK_MONOTONIC, &ts); \ + fprintf(verbose, "%d %" PRIdMAX ".%.9ld - ", (int)syscall(SYS_gettid), \ + ts.tv_sec, ts.tv_nsec); #define debug(...) pari_fprintf(verbose, __VA_ARGS__) #define debug_log(...) \ do { \ + flockfile(verbose); \ _debug_print(" - "); \ debug(__VA_ARGS__); \ fprintf(verbose, "\n"); \ + funlockfile(verbose); \ } while (0) #define debug_log_start(...) \ do { \ + flockfile(verbose); \ _debug_print("[ ] "); \ debug(__VA_ARGS__); \ fprintf(verbose, "\n"); \ + funlockfile(verbose); \ } while (0) #define debug_log_end(...) \ do { \ + flockfile(verbose); \ _debug_print("[*] "); \ debug(__VA_ARGS__); \ fprintf(verbose, "\n"); \ + funlockfile(verbose); \ + } while (0) + +#define debug_log_state(state, ...) \ + do { \ + flockfile(verbose); \ + _debug_print(" - "); \ + fprintf(verbose, "%s - ", offset_s[(state)]); \ + debug(__VA_ARGS__); \ + fprintf(verbose, "\n"); \ + funlockfile(verbose); \ } while (0) #else @@ -50,6 +69,7 @@ #define debug_log(...) #define debug_log_start(...) #define debug_log_end(...) +#define debug_log_state(...) #endif // DEBUG #define verbose_log(...) \ |
