Web/reactor/arena.h
2025-09-15 12:57:54 -05:00

24 lines
537 B
C

#ifndef ARENA_H
#define ARENA_H
#include <stddef.h>
typedef struct arena arena_t;
// Arena allocator for request-scoped allocations
struct arena {
char *buf; // memory buffer
size_t size; // total size
size_t used; // bytes used
arena_t *next; // for chaining arenas (future)
};
// Arena operations
arena_t* arena_new(size_t size);
void arena_free(arena_t *a);
void* arena_alloc(arena_t *a, size_t size);
char* arena_strdup(arena_t *a, const char *s, size_t len);
void arena_reset(arena_t *a);
#endif // ARENA_H