1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-07 04:30:18 +02:00

Wire up tracepoints for event-listener interface

This commit is contained in:
Andy Wingo 2025-02-10 13:41:19 +01:00
parent cca54736a0
commit 461efa98a0
4 changed files with 43 additions and 18 deletions

View file

@ -17,6 +17,7 @@
#include "gc-platform.h"
#include "gc-stack.h"
#include "gc-trace.h"
#include "gc-tracepoint.h"
#include "heap-sizer.h"
#include "large-object-space.h"
#include "nofl-space.h"
@ -67,10 +68,15 @@ struct gc_heap {
void *event_listener_data;
};
#define HEAP_EVENT(heap, event, ...) \
(heap)->event_listener.event((heap)->event_listener_data, ##__VA_ARGS__)
#define MUTATOR_EVENT(mut, event, ...) \
(mut)->heap->event_listener.event((mut)->event_listener_data, ##__VA_ARGS__)
#define HEAP_EVENT(heap, event, ...) do { \
(heap)->event_listener.event((heap)->event_listener_data, ##__VA_ARGS__); \
GC_TRACEPOINT(event, ##__VA_ARGS__); \
} while (0)
#define MUTATOR_EVENT(mut, event, ...) do { \
(mut)->heap->event_listener.event((mut)->event_listener_data, \
##__VA_ARGS__); \
GC_TRACEPOINT(event, ##__VA_ARGS__); \
} while (0)
struct gc_mutator {
struct nofl_allocator allocator;