]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
spawn: use explicit strand executor
authorCasey Bodley <cbodley@redhat.com>
Mon, 1 Nov 2021 17:14:16 +0000 (13:14 -0400)
committerCory Snyder <csnyder@iland.com>
Tue, 16 Nov 2021 14:55:17 +0000 (09:55 -0500)
commit2d44fc89e5edc6d35b6520d9f1fb4ab668c1d9d8
tree9543c392a82cf0bb4ee4f8ed60932b8f14f5ba6d
parent07734a5be2a38d342932bc7caeff0dc4fcf9cbef
spawn: use explicit strand executor

the default spawn::yield_context uses the polymorphic boost::asio::executor
to support any executor type

rgw's beast frontend always uses the same executor type for these
coroutines, so we can use that type directly to avoid the overhead of
type erasure and virtual function calls

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 9d9258e06b78bb47fd0156d9bd7bb00b52a726b0)

Conflicts:
src/common/async/yield_context.h
src/rgw/rgw_d3n_cacherequest.h
src/rgw/rgw_notify.cc
src/rgw/rgw_sync_checkpoint.cc

Cherry-pick notes:
- src/rgw/rgw_d3n_cacherequest.h doesn't exist in Octopus
- src/rgw/rgw_sync_checkpoint.cc doesn't exist in Octopus
- conflicts due to rename of structs after Octopus
- conflicts due to macro for conditional inclusion of beast context in Octopus
src/common/async/yield_context.h
src/rgw/rgw_aio.cc
src/rgw/rgw_aio_throttle.h
src/rgw/rgw_asio_frontend.cc
src/test/rgw/test_rgw_dmclock_scheduler.cc
src/test/rgw/test_rgw_reshard_wait.cc
src/test/rgw/test_rgw_throttle.cc