Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
cd8f566
coroutine: add AsyncQueue and immediate evaluation support in LeafAwa…
penguingao Aug 22, 2026
6b8b4ec
coroutine: bypass capacity check during direct push/pop handoff in As…
penguingao Aug 22, 2026
58146ad
coroutine: implement global FIFO capacity waitlist and fix capacity s…
penguingao Aug 22, 2026
1b43a77
test: streamline coroutine async queue test suite with fixture helpers
penguingao Aug 22, 2026
b24bb14
add some comments
penguingao Aug 22, 2026
03010bc
coverage
penguingao Aug 22, 2026
a77e7f6
fix LeafAwaitable cancellation re-entrant problem
penguingao Aug 22, 2026
6b20f09
safer close() and destructor reentrance protection
penguingao Aug 22, 2026
b3148f2
close() should cancel capacity request first too
penguingao Aug 22, 2026
dc78372
defense in depth on onCapacityGranted callback
penguingao Aug 22, 2026
4ec1e32
capture size
penguingao Aug 22, 2026
dc3bd3b
format
penguingao Aug 22, 2026
f730914
create closeInternal() to share between ~AsyncQueue and close()
penguingao Aug 22, 2026
0388a3c
fix removePushWaiter during closure race
penguingao Aug 22, 2026
57d001e
cancel after remove
penguingao Aug 22, 2026
2880839
coroutine: implement AsyncQueue and SharedCapacity using AsyncEvent
penguingao Aug 23, 2026
79a4fa2
update design invariant documentation; use status macros in places wh…
penguingao Aug 23, 2026
8d4bab2
format
penguingao Aug 23, 2026
9aa181b
async_queue with any_of
penguingao Aug 24, 2026
03b9b12
coroutine: add Semaphore primitive
penguingao Aug 24, 2026
70b4d1c
coroutine: integrate Semaphore into AsyncQueue with push-pop rendezvous
penguingao Aug 24, 2026
beabd08
documentation and some defense in depth code
penguingao Aug 25, 2026
d9550bf
remove async_event that's now unused
penguingao Aug 25, 2026
58e7141
Merge branch 'shared_capacity_async_queue' into coroutine_async_queue…
penguingao Aug 25, 2026
b572f68
coroutine: remove unused any_of primitive
penguingao Aug 25, 2026
565b679
coroutine: remove redundant std::move on return in Semaphore
penguingao Aug 25, 2026
7a9abb9
fix bug where order is violated in tryPush
penguingao Aug 25, 2026
f2b2076
Revert "fix bug where order is violated in tryPush"
penguingao Aug 25, 2026
5c1680f
coroutine: preserve caller item on tryPush failure with forwarding re…
penguingao Aug 25, 2026
1195813
coverage, and optimizations
penguingao Aug 25, 2026
e0807e2
coroutine: fix ASan stack-use-after-scope and shared_ptr lifetime in …
penguingao Aug 25, 2026
550f8c4
test refactoring
penguingao Aug 25, 2026
b5096ef
spell; move semantics
penguingao Aug 25, 2026
b49e093
remove unused move constructors from LeafAwaitable; make Semaphore::r…
penguingao Aug 25, 2026
da12877
remove unnecessary assertion
penguingao Aug 25, 2026
e2ea67c
add over-sized item documentation; rename test to reflect contract
penguingao Aug 25, 2026
47d98be
spelling
penguingao Aug 25, 2026
ae66330
remove SelfMoveAssignmentIsSafe test - self move is discouraged by GCC
penguingao Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions source/common/coroutine/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,47 @@ envoy_cc_library(
],
)

envoy_cc_library(
name = "semaphore_lib",
srcs = ["semaphore.cc"],
hdrs = ["semaphore.h"],
deps = [
":context_lib",
":launch_lib",
":leaf_awaitable_lib",
":task_lib",
"//source/common/common:assert_lib",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
],
)

envoy_cc_library(
name = "async_queue_lib",
hdrs = ["async_queue.h"],
deps = [
":leaf_awaitable_lib",
":semaphore_lib",
":status_macros_lib",
":task_lib",
"//source/common/common:assert_lib",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
],
)

envoy_cc_library(
name = "coroutine_lib",
deps = [
":async_queue_lib",
":context_lib",
":dispatcher_executor_lib",
":executor_lib",
":launch_lib",
":leaf_awaitable_lib",
":semaphore_lib",
":status_macros_lib",
":task_lib",
],
Expand Down
Loading
Loading