Skip to content

Draft: Release GIL when adding/removing attributes

Closes #592

This is a pair to the cppTango!1239 . After the modification in cpp code I found, that we can get a dead-lock: remove_attribute is a completely synchronous call and block the already started attribute reading to finish.

This can be solved by realizing GIL in bindings, and awaiting cppcode. But the only way to correctly and reliably await, I found, is to introduce async versions of add_attribute and remove_attribute (async_add_attribute and async_remove_attribute, correspondingly).

The original methods still can be called, but I propose, that we print warnings in case of async servers.

Edited by Yury Matveyev

Merge request reports