This feature improves feedback/cancel management during the map rendering to handle when
the client closes the in/out socket. This can occur when the client (an http server as
nginx) has a timeout shorter than the rendering time (fe. the rendering is very long due
database issue). Without this feature, the http server may resent new requests to the qgis
server which is busy and can not handle it.
For each new FCGI request, we start a new thread to monitor the incoming socket stream and
detect its closing. If the socket closes before the rendering, we update a feedback object
to cancel the rendering jobs. When the rendering is done, the thread is closed.
Make sure Python exceptions are converted into
QgsServerException and catched by the main
service executor.
Without this patch, the server process is terminated
(aborted).