summaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
authorJ08nY2018-02-03 21:58:03 +0100
committerJ08nY2018-02-03 21:58:03 +0100
commitdedb8c3f127a3198c45dd29221f524d1227c207a (patch)
tree1178c0aa560960ee8ed6b7b2931288f24c775624 /src/io
parented7e99ebc7c50523e5a2c6f21c8f89028348da71 (diff)
downloadecgen-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.h30
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(...) \