Feature Request: Cancelling a Nurse/Patient Relationship for keep_alive
#1.708 geöffnet am 22. Feb. 2019
Repository-Metriken
- Stars
- (14.677 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 5T 2h) (10 gemergte PRs in 30 T)
Beschreibung
I would like to request a feature be made that cancels the keep_alive<nurse, patient> relationship. I have found a use case for callbacks which require a way to cancel the keep_alive functionality upon a python function call bound with pybind11 (unregister_callback). Please see example below:
Example:
.def("register_callback", ®isterCallback, py::keep_alive<1, 2>())
.def("unregister_callback", &unregisterCallback);
class CallBack():
....
def func(connection):
callback = CallBack()
connection.regsiter_callback(callback)
# do something
connection.unregister_callback(callback)
func(conn)
func(conn)
func(conn)
None of the callback objects will be destroyed until the connection object is destroyed. These callbacks could be holding resources that the user expects to be freed upon exiting func(). I would like to be able to add something to the unregister_callback pybind11 definition that would allow me to cancel keep_alive when unregister_callback is called.