autotimer/AutoTimerResource: handle exceptions in background better
authorMoritz Venn <moritz.venn@freaque.net>
Sun, 15 Feb 2015 13:06:11 +0000 (14:06 +0100)
committerMoritz Venn <moritz.venn@freaque.net>
Sun, 15 Feb 2015 13:18:22 +0000 (14:18 +0100)
commit28ab991a8dd584a56f35b122cb9223534d100fde
tree37524a8074542b7f525615690c46cb1a4377f934
parentb29298d7b1c94a71a7c9e0a2dd7cd7415fa706be
autotimer/AutoTimerResource: handle exceptions in background better

previously connections would just hang if the thread crashed which is
probably not the best thing to do.
handle this the best we can with the new anti-idle codeā€¦
parse was actually fixed as a byproduct of the previous change and
generates a valid xml indicating the failure

simulate is a bit more tricky since there is no good way to indicate
a failure that would be backwards compatible (though we COULD change
the API a bit here I'd prefer to avoid this). so we add a new
<exception> element when the simulation crashed and to indicate this to
backends not knowing about the element we generate a broken XML with a
subsequent tag indicating that something is awry.
this might lead to bogus bug reports I'm open to fixing the document if
someone can provide a better alternative.

this also modifies the base AutoTimerBackgroundThread though we don't
really use it anymore. but since some people "borrowed" the code maybe
they check back some day, notice the change and borrow it as well.
it also removes the ability the return server.NOT_DONE_YET from a
backgrounded function which was never supported really well and the
actually backgrounded resources are better examples of long running
background tasks.

fun-fact: this message is longer than the actual change :)
autotimer/src/AutoTimerResource.py