Menu

#113 Change Event API contract - remove synchronous reads

open
nobody
Java API
5
2015-08-10
2015-08-10
Ingvord
No

Synchronous reads of an attribute of the remote tango server when client subscribes or when NoHeartbeat happens (something else?) are very misleading as client can not recognize whether it gets value because of the event or it just happens that API has read value and passes it to the client.

So basically clients get values even though server does not produce anything (server deliberately pushes events). And as a client might use this event as a trigger for some routine (for instance, data acquisition) inproper results and even crashes may occur.

So basically API should not attempt to decide for the client to read value synchronously, client may do so in error handler.

Same story with the first read when client subscribes. I can image why this was done (Hello GUI!), i.e. client subscribes, conveniently gets a value, displays it and then waits for a change. But, this must be done by the client explicitly - client reads value, displays it, subscribes for changes and waits.

Currently implemented in TangORB-9.1.1.hzg

Discussion