Lines Matching refs:py
38 Child() { py::print("Allocating child."); }
41 ~Child() { py::print("Releasing child."); }
43 py::class_<Child>(m, "Child")
44 .def(py::init<>());
48 Parent() { py::print("Allocating parent."); }
49 ~Parent() { py::print("Releasing parent."); }
54 py::class_<Parent>(m, "Parent")
55 .def(py::init<>())
56 .def(py::init([](Child *) { return new Parent(); }), py::keep_alive<1, 2>())
58 .def("addChildKeepAlive", &Parent::addChild, py::keep_alive<1, 2>())
60 .def("returnChildKeepAlive", &Parent::returnChild, py::keep_alive<1, 0>())
61 .def("returnNullChildKeepAliveChild", &Parent::returnNullChild, py::keep_alive<1, 0>())
62 .def("returnNullChildKeepAliveParent", &Parent::returnNullChild, py::keep_alive<0, 1>());
70 py::class_<ParentGC, Parent>(m, "ParentGC", py::dynamic_attr())
71 .def(py::init<>());
76 m.def("guarded_call", &CustomGuard::report_status, py::call_guard<CustomGuard>());
80 }, py::call_guard<CustomGuard, DependentGuard>());
84 }, py::call_guard<DependentGuard, CustomGuard>());
87 // `py::call_guard<py::gil_scoped_release>()` should work in PyPy as well,
91 if (auto tstate = py::detail::get_thread_state_unchecked())
98 m.def("without_gil", report_gil_status, py::call_guard<py::gil_scoped_release>());