Skip to content

Commit f8278b1

Browse files
authored
Small simplification to metrics task accounting (#2966)
1 parent 72e7929 commit f8278b1

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

src/workerd/io/io-context.c++

+2-6
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,7 @@ void IoContext::addTask(kj::Promise<void> promise) {
398398
// changes.)
399399
auto& metrics = getMetrics();
400400
if (metrics.getSpan().isObserved()) {
401-
metrics.addedContextTask();
402-
promise = promise.attach(
403-
kj::defer([metrics = kj::addRef(metrics)]() mutable { metrics->finishedContextTask(); }));
401+
promise = promise.attach(metrics.addedContextTask());
404402
}
405403
}
406404

@@ -413,9 +411,7 @@ void IoContext::addWaitUntil(kj::Promise<void> promise) {
413411
// are not tied to requests in actors. So we just skip it in actors.
414412
auto& metrics = getMetrics();
415413
if (metrics.getSpan().isObserved()) {
416-
metrics.addedWaitUntilTask();
417-
promise = promise.attach(kj::defer(
418-
[metrics = kj::addRef(metrics)]() mutable { metrics->finishedWaitUntilTask(); }));
414+
promise = promise.attach(metrics.addedWaitUntilTask());
419415
}
420416
}
421417

src/workerd/io/observer.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,12 @@ class RequestObserver: public kj::Refcounted {
107107
return kj::none;
108108
}
109109

110-
virtual void addedContextTask() {}
111-
virtual void finishedContextTask() {}
112-
virtual void addedWaitUntilTask() {}
113-
virtual void finishedWaitUntilTask() {}
110+
virtual kj::Own<void> addedContextTask() {
111+
return kj::Own<void>();
112+
}
113+
virtual kj::Own<void> addedWaitUntilTask() {
114+
return kj::Own<void>();
115+
}
114116

115117
virtual void setFailedOpen(bool value) {}
116118

0 commit comments

Comments
 (0)