From: xie xingguo Date: Sat, 30 Mar 2019 03:26:19 +0000 (+0800) Subject: mgr/BaseMgrModule: drop GIL in ceph_store_set X-Git-Tag: v15.0.0~7^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F27280%2Fhead;p=ceph.git mgr/BaseMgrModule: drop GIL in ceph_store_set Signed-off-by: xie xingguo --- diff --git a/src/mgr/ActivePyModules.cc b/src/mgr/ActivePyModules.cc index 0f3f508eb6fe..745a34e301b9 100644 --- a/src/mgr/ActivePyModules.cc +++ b/src/mgr/ActivePyModules.cc @@ -593,10 +593,7 @@ void ActivePyModules::set_store(const std::string &module_name, Command set_cmd; { - PyThreadState *tstate = PyEval_SaveThread(); std::lock_guard l(lock); - PyEval_RestoreThread(tstate); - if (val) { store_cache[global_key] = *val; } else { diff --git a/src/mgr/BaseMgrModule.cc b/src/mgr/BaseMgrModule.cc index 87eda069d502..1cdb0f09a817 100644 --- a/src/mgr/BaseMgrModule.cc +++ b/src/mgr/BaseMgrModule.cc @@ -483,7 +483,9 @@ ceph_store_set(BaseMgrModule *self, PyObject *args) if (value) { val = value; } + PyThreadState *tstate = PyEval_SaveThread(); self->py_modules->set_store(self->this_module->get_name(), key, val); + PyEval_RestoreThread(tstate); Py_RETURN_NONE; }