Fix call_guard usage inside .def_property calls.
See also [PR #5533](https://github.com/pybind/pybind11/pull/5533). PiperOrigin-RevId: 886714838 Change-Id: I8c98461098ccf4958fb18bdcb5acc293c988c258
This commit is contained in:
committed by
Copybara-Service
parent
9fa3f6f77e
commit
02d1d3d503
+26
-41
@@ -374,38 +374,29 @@ PYBIND11_MODULE(_simulate, pymodule) {
|
|||||||
.def_property_readonly("d", &SimulateWrapper::GetData)
|
.def_property_readonly("d", &SimulateWrapper::GetData)
|
||||||
.def_property_readonly("viewport", &SimulateWrapper::GetViewport)
|
.def_property_readonly("viewport", &SimulateWrapper::GetViewport)
|
||||||
.def_property_readonly("ctrl_noise_std",
|
.def_property_readonly("ctrl_noise_std",
|
||||||
GetIfNotNull(&mujoco::Simulate::ctrl_noise_std),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::ctrl_noise_std), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property_readonly("ctrl_noise_rate",
|
.def_property_readonly("ctrl_noise_rate",
|
||||||
GetIfNotNull(&mujoco::Simulate::ctrl_noise_rate),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::ctrl_noise_rate), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
|
|
||||||
.def_property_readonly("real_time_index",
|
.def_property_readonly("real_time_index",
|
||||||
GetIfNotNull(&mujoco::Simulate::real_time_index),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::real_time_index), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property("speed_changed",
|
.def_property("speed_changed",
|
||||||
GetIfNotNull(&mujoco::Simulate::speed_changed),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::speed_changed), py::call_guard<py::gil_scoped_release>()),
|
||||||
SetIfNotNull(&mujoco::Simulate::speed_changed),
|
py::cpp_function(SetIfNotNull(&mujoco::Simulate::speed_changed), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property("measured_slowdown",
|
.def_property("measured_slowdown",
|
||||||
GetIfNotNull(&mujoco::Simulate::measured_slowdown),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::measured_slowdown), py::call_guard<py::gil_scoped_release>()),
|
||||||
SetIfNotNull(&mujoco::Simulate::measured_slowdown),
|
py::cpp_function(SetIfNotNull(&mujoco::Simulate::measured_slowdown), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property_readonly("refresh_rate",
|
.def_property_readonly("refresh_rate",
|
||||||
GetIfNotNull(&mujoco::Simulate::refresh_rate),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::refresh_rate), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
|
|
||||||
.def_property_readonly("busywait",
|
.def_property_readonly("busywait",
|
||||||
GetIfNotNull(&mujoco::Simulate::busywait),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::busywait), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
.def_property_readonly("run", py::cpp_function(GetIfNotNull(&mujoco::Simulate::run), py::call_guard<py::gil_scoped_release>()))
|
||||||
.def_property_readonly("run", GetIfNotNull(&mujoco::Simulate::run),
|
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
|
|
||||||
.def_property_readonly("exitrequest",
|
.def_property_readonly("exitrequest",
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim) {
|
py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim) {
|
||||||
return sim.exitrequest.load();
|
return sim.exitrequest.load();
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def("exit",
|
.def("exit",
|
||||||
[](SimulateWrapper& wrapper) {
|
[](SimulateWrapper& wrapper) {
|
||||||
mujoco::Simulate* sim = wrapper.simulate();
|
mujoco::Simulate* sim = wrapper.simulate();
|
||||||
@@ -419,10 +410,9 @@ PYBIND11_MODULE(_simulate, pymodule) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
.def_property_readonly("uiloadrequest",
|
.def_property_readonly("uiloadrequest",
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim) {
|
py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim) {
|
||||||
return sim.uiloadrequest.load();
|
return sim.uiloadrequest.load();
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def("uiloadrequest_decrement", CallIfNotNull(+[](mujoco::Simulate& sim) {
|
.def("uiloadrequest_decrement", CallIfNotNull(+[](mujoco::Simulate& sim) {
|
||||||
sim.uiloadrequest.fetch_sub(1);
|
sim.uiloadrequest.fetch_sub(1);
|
||||||
}),
|
}),
|
||||||
@@ -443,19 +433,16 @@ PYBIND11_MODULE(_simulate, pymodule) {
|
|||||||
py::call_guard<py::gil_scoped_release>())
|
py::call_guard<py::gil_scoped_release>())
|
||||||
|
|
||||||
.def_property(
|
.def_property(
|
||||||
"droploadrequest", CallIfNotNull(+[](mujoco::Simulate& sim) {
|
"droploadrequest", py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim) {
|
||||||
return sim.droploadrequest.load();
|
return sim.droploadrequest.load();
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()),
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim, bool droploadrequest) {
|
py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim, bool droploadrequest) {
|
||||||
sim.droploadrequest.store(droploadrequest);
|
sim.droploadrequest.store(droploadrequest);
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property_readonly("dropfilename",
|
.def_property_readonly("dropfilename",
|
||||||
GetIfNotNull(&mujoco::Simulate::dropfilename),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::dropfilename), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property_readonly("filename",
|
.def_property_readonly("filename",
|
||||||
GetIfNotNull(&mujoco::Simulate::filename),
|
py::cpp_function(GetIfNotNull(&mujoco::Simulate::filename), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
|
||||||
.def_property(
|
.def_property(
|
||||||
"load_error", GetIfNotNull(&mujoco::Simulate::load_error),
|
"load_error", GetIfNotNull(&mujoco::Simulate::load_error),
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim, const std::string& error) {
|
CallIfNotNull(+[](mujoco::Simulate& sim, const std::string& error) {
|
||||||
@@ -463,16 +450,14 @@ PYBIND11_MODULE(_simulate, pymodule) {
|
|||||||
std::strncpy(sim.load_error, error.c_str(), max_length - 1);
|
std::strncpy(sim.load_error, error.c_str(), max_length - 1);
|
||||||
sim.load_error[max_length - 1] = '\0';
|
sim.load_error[max_length - 1] = '\0';
|
||||||
}))
|
}))
|
||||||
.def_property("ui0_enable", GetIfNotNull(&mujoco::Simulate::ui0_enable),
|
.def_property("ui0_enable", py::cpp_function(GetIfNotNull(&mujoco::Simulate::ui0_enable), py::call_guard<py::gil_scoped_release>()),
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim, int enabled) {
|
py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim, int enabled) {
|
||||||
sim.ui0_enable = enabled;
|
sim.ui0_enable = enabled;
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()))
|
||||||
py::call_guard<py::gil_scoped_release>())
|
.def_property("ui1_enable", py::cpp_function(GetIfNotNull(&mujoco::Simulate::ui1_enable), py::call_guard<py::gil_scoped_release>()),
|
||||||
.def_property("ui1_enable", GetIfNotNull(&mujoco::Simulate::ui1_enable),
|
py::cpp_function(CallIfNotNull(+[](mujoco::Simulate& sim, int enabled) {
|
||||||
CallIfNotNull(+[](mujoco::Simulate& sim, int enabled) {
|
|
||||||
sim.ui1_enable = enabled;
|
sim.ui1_enable = enabled;
|
||||||
}),
|
}), py::call_guard<py::gil_scoped_release>()));
|
||||||
py::call_guard<py::gil_scoped_release>());
|
|
||||||
|
|
||||||
pymodule.def("set_glfw_dlhandle", [](std::uintptr_t dlhandle) {
|
pymodule.def("set_glfw_dlhandle", [](std::uintptr_t dlhandle) {
|
||||||
mujoco::Glfw(reinterpret_cast<void*>(dlhandle));
|
mujoco::Glfw(reinterpret_cast<void*>(dlhandle));
|
||||||
|
|||||||
Reference in New Issue
Block a user