Bug ? : Thread, join and push_change_event
Hello dear all,
I'm almost new to Tango and encountered what I think is a problem (but I could be wrong about that).
I searched online for a bit but couldn't find anything.
Here it is :
I wrote a very simple device server : a command to call join on a thread (named "pushThread") and one attribute.
The thread "pushThread" calls the "push_change_event" method on the attribute 20 times at 10 Hz.
When I call the "join" method from the main thread before the end of the "pushThread" thread, the "push_change_event" method throws an exception with the following details :
Origin : TangoMonitor::get_monitor
Desc : Not able to acquire serialization (dev, class or process) monitor
Reason : API_CommandTimedOut
I don't think it's a big problem, but the "push_change_event" method hangs for a few seconds before throwing the exception so it's a bit annoying.
Maybe this topic will interest someone ?
Best regards, Olivier Neveu
Your issue is the same as the one reported (for pytango) in https://github.com/tango-controls/TangoTickets/issues/39
The behaviour you're seeing is currently expected.
In particular, the following comment in this issue applies to your use case too:
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.