out_checks.dump(&jf);
jf.flush(*_dout);
*_dout << dendl;
-
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->set_health_checks(self->this_module->get_name(),
- std::move(out_checks));
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->set_health_checks(self->this_module->get_name(),
+ std::move(out_checks));
+ });
Py_RETURN_NONE;
}
if (value) {
val = value;
}
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->set_config(module, key, val);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->set_config(module, key, val);
+ });
Py_RETURN_NONE;
}
if (value) {
val = value;
}
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->set_store(self->this_module->get_name(), key, val);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->set_store(self->this_module->get_name(), key, val);
+ });
Py_RETURN_NONE;
}
if (!PyArg_ParseTuple(args, "sis:ceph_cluster_log", &channel, &prio, &message)) {
return nullptr;
}
-
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->cluster_log(channel, (clog_type)prio, message);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->cluster_log(channel, (clog_type)prio, message);
+ });
Py_RETURN_NONE;
}
&svc_str)) {
return nullptr;
}
-
// We call down into PyModules even though we have a MgrPyModule
// reference here, because MgrPyModule's fields are protected
// by PyModules' lock.
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->set_uri(self->this_module->get_name(), svc_str);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->set_uri(self->this_module->get_name(), svc_str);
+ });
Py_RETURN_NONE;
}
&devid, &wear_level)) {
return nullptr;
}
-
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->set_device_wear_level(devid, wear_level);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->set_device_wear_level(devid, wear_level);
+ });
Py_RETURN_NONE;
}
&evid, &desc, &progress, &add_to_ceph_s)) {
return nullptr;
}
-
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->update_progress_event(evid, desc, progress, add_to_ceph_s);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->update_progress_event(evid, desc, progress, add_to_ceph_s);
+ });
Py_RETURN_NONE;
}
&evid)) {
return nullptr;
}
-
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->complete_progress_event(evid);
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->complete_progress_event(evid);
+ });
Py_RETURN_NONE;
}
static PyObject*
ceph_clear_all_progress_events(BaseMgrModule *self, PyObject *args)
{
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->clear_all_progress_events();
- PyEval_RestoreThread(tstate);
-
+ without_gil([&] {
+ self->py_modules->clear_all_progress_events();
+ });
Py_RETURN_NONE;
}
arguments[arg_key] = arg_value;
}
- PyThreadState *tstate = PyEval_SaveThread();
- bool r = self->this_module->is_authorized(arguments);
- PyEval_RestoreThread(tstate);
+ bool r = without_gil([&] {
+ return self->this_module->is_authorized(arguments);
+ });
if (r) {
Py_RETURN_TRUE;
if (!PyArg_ParseTuple(args, "s:ceph_register_client", &addrs)) {
return nullptr;
}
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->register_client(self->this_module->get_name(), addrs);
- PyEval_RestoreThread(tstate);
+ without_gil([&] {
+ self->py_modules->register_client(self->this_module->get_name(), addrs);
+ });
Py_RETURN_NONE;
}
if (!PyArg_ParseTuple(args, "s:ceph_unregister_client", &addrs)) {
return nullptr;
}
- PyThreadState *tstate = PyEval_SaveThread();
- self->py_modules->unregister_client(self->this_module->get_name(), addrs);
- PyEval_RestoreThread(tstate);
+ without_gil([&] {
+ self->py_modules->unregister_client(self->this_module->get_name(), addrs);
+ });
Py_RETURN_NONE;
}