: module_config(module_config_), daemon_state(ds), cluster_state(cs),
monc(mc), clog(clog_), audit_clog(audit_clog_), objecter(objecter_),
client(client_), finisher(f),
+ cmd_finisher(g_ceph_context, "cmd_finisher", "cmdfin"),
server(server), py_module_registry(pmr), lock("ActivePyModules")
{
store_cache = std::move(store_data);
+ cmd_finisher.start();
}
ActivePyModules::~ActivePyModules() = default;
lock.Lock();
}
+ cmd_finisher.wait_for_empty();
+ cmd_finisher.stop();
+
modules.clear();
}
Command set_cmd;
{
- PyThreadState *tstate = PyEval_SaveThread();
std::lock_guard l(lock);
- PyEval_RestoreThread(tstate);
-
if (val) {
store_cache[global_key] = *val;
} else {
auto mod_iter = modules.find(module_name);
if (mod_iter == modules.end()) {
*ss << "Module '" << module_name << "' is not available";
+ lock.Unlock();
return -ENOENT;
}