Skip to content

Commit 125e5b1

Browse files
ac-patelasheshvidyut
authored andcommitted
[PH2][Sleep] Add an experiment to make Sleep use a NonOwningWaker (grpc#40587)
Closes grpc#40587 COPYBARA_INTEGRATE_REVIEW=grpc#40587 from ac-patel:sleep_experiment 2eb7919 PiperOrigin-RevId: 802437235
1 parent 54c19f0 commit 125e5b1

File tree

6 files changed

+40
-1
lines changed

6 files changed

+40
-1
lines changed

bazel/experiments.bzl

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/lib/experiments/experiments.cc

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/lib/experiments/experiments.h

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/lib/experiments/experiments.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,11 @@
280280
expiry: 2026/02/01
281281
owner: akshitpatel@google.com
282282
test_tags: ["promise_test"]
283+
- name: sleep_use_non_owning_waker
284+
description: If set, the sleep promise uses a non-owning waker.
285+
expiry: 2026/02/01
286+
owner: akshitpatel@google.com
287+
test_tags: ["promise_test"]
283288
- name: tcp_frame_size_tuning
284289
description:
285290
If set, enables TCP to use RPC size estimation made by higher layers.

src/core/lib/experiments/rollouts.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@
9090
default: true
9191
- name: sleep_promise_exec_ctx_removal
9292
default: false
93+
- name: sleep_use_non_owning_waker
94+
default: false
9395
- name: tcp_frame_size_tuning
9496
default: false
9597
- name: tcp_rcv_lowat

src/core/lib/promise/sleep.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ Poll<absl::Status> Sleep::operator()() {
5656
}
5757

5858
Sleep::ActiveClosure::ActiveClosure(Timestamp deadline)
59-
: waker_(GetContext<Activity>()->MakeOwningWaker()),
59+
: waker_((IsSleepUseNonOwningWakerEnabled())
60+
? GetContext<Activity>()->MakeNonOwningWaker()
61+
: GetContext<Activity>()->MakeOwningWaker()),
6062
event_engine_(GetContext<EventEngine>()->shared_from_this()),
6163
timer_handle_(
6264
event_engine_->RunAfter(deadline - Timestamp::Now(), this)) {}

0 commit comments

Comments
 (0)