Exceptions in async callbacks are not handled
@matcelary found, that exceptions in async callbacks are not handled and result in:
terminate called after throwing an instance of 'Tango::DevFailed'
to reproduce:
import time
from tango import ApiUtil, cb_sub_model
from tango.server import Device, attribute
from tango.test_context import DeviceTestContext
api_util = ApiUtil.instance()
api_util.set_asynch_cb_sub_model(cb_sub_model.PUSH_CALLBACK)
class TestDevice(Device):
@attribute
def attr(self):
return 1
def callback(_event):
raise Exception("Some exception")
if __name__ == '__main__':
with DeviceTestContext(TestDevice) as proxy:
proxy.read_attribute_asynch("attr", callback)
time.sleep(1)
Edited by Yury Matveev