> I think the way to properly handle GIL from long running calls
> is to add py::call_guard()
Josh
Full success! I snarfed the gr code for msg_queue, msg_handler, and message,
and added this call guard. There is no more GIL deadlock in the python OP25
apps.
Max
==
try contacting the author on his github page. he's been porting a lot of
blocks to 3.10 and may be able to help.
On Wed, Jun 15, 2022 at 5:11 PM ikjtel wrote:
> |
> | Have you tried this fork updated to 3.10?
> |
> | https://github.com/bkerler/op25
>
> I must be doing something not quite right
>
Have you tried this fork updated to 3.10?
https://github.com/bkerler/op25
> On Jun 15, 2022, at 16:03, Josh Morman wrote:
>
>
> I think the way to properly handle GIL from long running calls is to add
> py::call_guard() to the definition of the method
> binding
>
> .def("delete_head", &
I think the way to properly handle GIL from long running calls is to add
py::call_guard() to the definition of the method
binding
.def("delete_head", &msg_queue::delete_head, D(msg_queue, delete_head))
I haven't tried this here, but I've used it on similar python bindings
https://pybind11.readth
Max,
The msgq API probably should be deprecated, but it is in fact there in
3.10. I think you are right that it is an issue with the GIL because
delete_head it is a long blocking function. Are you able to use
delete_head_nowait instead?
Thanks,
Josh
On Wed, Jun 15, 2022 at 10:08 AM ikjtel wro
The script pasted below runs OK in 3.8 but hangs (with no iteration output) in
3.10 (Ubuntu 22.04). Naturally no message is anticipated - but the script
should not hang!
This problem is blocking the release of OP25 for GR3.10.
I suspect deadlock due to failure to release the Python GIL.
Kindly