SharedMutex& pause_mutex,
rgw::dmclock::Scheduler *scheduler,
const std::string& uri_prefix,
- std::unique_ptr<rgw::sal::LuaManager>& lua_manager,
boost::system::error_code& ec,
yield_context yield)
{
scheduler, &user, &latency,
env.ratelimiting->get_active(),
env.lua_background,
- lua_manager,
+ env.lua_manager,
&http_ret);
if (cct->_conf->subsys.should_gather(ceph_subsys_rgw_access, 1)) {
#endif
SharedMutex pause_mutex;
std::unique_ptr<rgw::dmclock::Scheduler> scheduler;
- std::unique_ptr<rgw::sal::LuaManager> lua_manager;
struct Listener {
tcp::endpoint endpoint;
public:
AsioFrontend(RGWProcessEnv& env, RGWFrontendConfig* conf,
dmc::SchedulerCtx& sched_ctx)
- : env(env), conf(conf), pause_mutex(context.get_executor()),
- lua_manager(env.driver->get_lua_manager())
+ : env(env), conf(conf), pause_mutex(context.get_executor())
{
auto sched_t = dmc::get_scheduler_t(ctx());
switch(sched_t){
conn->buffer.consume(bytes);
handle_connection(context, env, stream, timeout, header_limit,
conn->buffer, true, pause_mutex, scheduler.get(),
- uri_prefix, lua_manager, ec, yield);
+ uri_prefix, ec, yield);
if (!ec) {
// ssl shutdown (ignoring errors)
stream.async_shutdown(yield[ec]);
boost::system::error_code ec;
handle_connection(context, env, conn->socket, timeout, header_limit,
conn->buffer, false, pause_mutex, scheduler.get(),
- uri_prefix, lua_manager, ec, yield);
+ uri_prefix, ec, yield);
conn->socket.shutdown(tcp_socket::shutdown_both, ec);
}, make_stack_allocator());
}
void AsioFrontend::unpause()
{
- lua_manager = env.driver->get_lua_manager();
-
// unpause to unblock connections
pause_mutex.unlock();
namespace rgw::lua {
class Background;
}
+namespace rgw::sal {
+ class LuaManager;
+}
struct RGWProcessEnv {
rgw::sal::Driver* driver = nullptr;
rgw_auth_registry_ptr_t auth_registry;
ActiveRateLimiter* ratelimiting = nullptr;
rgw::lua::Background* lua_background = nullptr;
+ std::unique_ptr<rgw::sal::LuaManager> lua_manager;
};
class RGWFrontendConfig;
RGWFrontendConfig* conf;
int sock_fd;
std::string uri_prefix;
- std::unique_ptr<rgw::sal::LuaManager> lua_manager;
struct RGWWQ : public DoutPrefixProvider, public ThreadPool::WorkQueue<RGWRequest> {
RGWProcess* process;
conf(conf),
sock_fd(-1),
uri_prefix(std::move(uri_prefix)),
- lua_manager(env.driver->get_lua_manager()),
req_wq(this,
ceph::make_timespan(g_conf()->rgw_op_thread_timeout),
ceph::make_timespan(g_conf()->rgw_op_thread_suicide_timeout),
}
void unpause_with_new_config() {
- lua_manager = env.driver->get_lua_manager();
m_tp.unpause();
}