File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ // Copyright 2025 Open Source Robotics Foundation, Inc.
2+ //
3+ // Licensed under the Apache License, Version 2.0 (the "License");
4+ // you may not use this file except in compliance with the License.
5+ // You may obtain a copy of the License at
6+ //
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ #ifndef RCLPY__GIL_UTILS_HPP_
16+ #define RCLPY__GIL_UTILS_HPP_
17+
18+ #include < pybind11/pybind11.h>
19+
20+ namespace py = pybind11;
21+
22+ namespace rclpy
23+ {
24+
25+ class gil_scoped_release
26+ {
27+ public:
28+ gil_scoped_release () = default ;
29+
30+ ~gil_scoped_release () {
31+ // Avoid taking the GIL if runtime is finalizing
32+ if (_Py_IsFinalizing ()) {
33+ gil_release_.disarm ();
34+ }
35+ }
36+
37+ private:
38+
39+ py::gil_scoped_release gil_release_;
40+ };
41+
42+ } // namespace rclpy
43+
44+ #endif // RCLPY__GIL_UTILS_HPP_
You can’t perform that action at this time.
0 commit comments