DynlibProcApp not hanging on dead subprocesses
DynlibProcApp not hanging on dead subprocesses

With our previous code, the main run() method of the DynlibProcApp would
hang indefinitely if the subprocess died during the execution of the
dynamic library (e.g., because of a segfault) because it always expected
a value to come out of the multiprocessing queue. No value is put on the
queue by a killed process of course, so we need to check not only the
queue for values, but also the process for signs of life. If we find
that the subprocess is not alive anymore while polling the queue for
values then we throw an exception, which will move the DynlibProcApp to
its ERROR state, and will allow the subsequent execution of the rest of
the graph.

Signed-off-by: Rodrigo Tobar <bd955c861cbec2e41c0959cf13c7f573fa307e58@icrar.org>

steve-ord/daliuge,steve-ord/daliuge,steve-ord/daliuge,steve-ord/daliuge,steve-ord/daliuge,steve-ord/daliuge,steve-ord/daliuge