on windows, when the user closes all anidot windows, the anidot server does not get restarted
|Status:||Closed||Start date:||11 Jun 2009|
probably, because jtorx thinks that the anidot server exited with an error.
one solution would be to have an explicit 'restart animation servers' button or so.
#1 Updated by Axel Belinfante over 11 years ago
workaround for users, for now: do not close (delete) all anidot windows: leave at least one open (hidden/iconified or so)
cause: it seems that jtorx does not notice that the anidotsrv process exited, and thus not automatically restarts it.
work-around in tool: change anidotsrv to not exit when last window is closed, when started in server mode
real fix: make sure we detect when process dies (this detection does seem to work for real implementation programs !)
#2 Updated by Axel Belinfante over 11 years ago
one real problem seemed to be: starting of the anidot/animsc processes on windows is really slow.
therefore, we not only distinguish between running/non-running animator server process,
but also between accessable/inaccessable (have we already read its port number?)
we now try to avoid starting an animator when we know that animation server is inaccessable.
moreover, the animation servers no longer die when their last window is closed.
potentially, this may increase the number of left over animation server processes - for example,
when JTorX dies.
for now, it looks like they may die in most cases: either because they get cleaned up by jtorx
(when the java process is blown away, on windows they die -- with a huge error message in a dialog box!! - because they no longer can write to stderr, while they are still starting)
(when the java process is blown away, on windows, and they have finished starting, they do not die!!!)
#4 Updated by Axel Belinfante over 11 years ago
in anidot and animsc, when started such that they survive all windows being closed, added exit on detection of eof on stdin - this seems to take care of leftover processes that remain running, unaware that their parent has died long ago --
if parent dies while animsc/anidot are still starting up, it may take a while before they notice eof on stdin, though.