querylog: the writer queue defaults to 1024 entries, and a live stream allocates its ring on subscribe instead of at boot

This commit is contained in:
2026-10-21 22:38:53 +02:00
parent 0cafd770c1
commit d951d03b7d
12 changed files with 234 additions and 129 deletions
+12 -12
View File
@@ -66,16 +66,16 @@ test "the sink publishes and logs the same entry" {
defer threaded.deinit();
const io = threaded.io();
const hub = try testing.allocator.create(sse.Hub);
defer testing.allocator.destroy(hub);
hub.init();
var hub_storage: sse.Hub = .init(testing.allocator);
defer hub_storage.deinit();
const hub = &hub_storage;
var queue_buf: [4]logger.Entry = undefined;
var query_logger: logger.Logger = .init(.{}, &queue_buf);
var owner: logger_controller.Borrowed = .{};
var sink: QuerySink = .init(owner.over(&query_logger), hub);
const id = hub.subscribe(io).?;
const id = try hub.subscribe(io);
defer hub.unsubscribe(io, id);
sink.log(io, sampleEntry(11, "example.com"));
@@ -94,16 +94,16 @@ test "fanout does not depend on the entry reaching the queue" {
defer threaded.deinit();
const io = threaded.io();
const hub = try testing.allocator.create(sse.Hub);
defer testing.allocator.destroy(hub);
hub.init();
var hub_storage: sse.Hub = .init(testing.allocator);
defer hub_storage.deinit();
const hub = &hub_storage;
var queue_buf: [4]logger.Entry = undefined;
var query_logger: logger.Logger = .init(.{}, &queue_buf);
var owner: logger_controller.Borrowed = .{};
var sink: QuerySink = .init(owner.over(&query_logger), hub);
const id = hub.subscribe(io).?;
const id = try hub.subscribe(io);
defer hub.unsubscribe(io, id);
// A closed queue drops what it is handed. The stream still carries the
@@ -120,9 +120,9 @@ test "the privacy transforms run once, before both consumers" {
defer threaded.deinit();
const io = threaded.io();
const hub = try testing.allocator.create(sse.Hub);
defer testing.allocator.destroy(hub);
hub.init();
var hub_storage: sse.Hub = .init(testing.allocator);
defer hub_storage.deinit();
const hub = &hub_storage;
var queue_buf: [4]logger.Entry = undefined;
var query_logger: logger.Logger = .init(
@@ -132,7 +132,7 @@ test "the privacy transforms run once, before both consumers" {
var owner: logger_controller.Borrowed = .{};
var sink: QuerySink = .init(owner.over(&query_logger), hub);
const id = hub.subscribe(io).?;
const id = try hub.subscribe(io);
defer hub.unsubscribe(io, id);
sink.log(io, sampleEntry(4, "tracker.example"));