Time-outs may occur within Tango devices, e.g. VcExecutors. This condition may cause the MarcoServer/Pool to get stuck. The problem is that users do not become aware of this state and do not execute SardanaRestartBoth3.py.
The solution is to catch the time-out in the server and send a message to the user. Here is an example.
Notice that signal.alarm() cannot be used because the VcExecutor is not executed in the main thread.
Notice also that the function HasyUtils.notifyUser() notifies all users, if no second argument is supplied. The message is sent to users working on the host that runs the MacroServer. If this is a remote host, the message is sent via ssh.