'End a Request.
Called by Request objects. An FCGI_END_REQUEST Record is
sent to the web server. If the web server no longer requires
the connection, the socket is closed, thereby ending this
Connection (run() returns).'

def end_request(self, req, appStatus=0L, protocolStatus=FCGI_REQUEST_COMPLETE, remove=True):

    rec = Record(FCGI_END_REQUEST, req.requestId)
    rec.contentData = struct.pack(FCGI_EndRequestBody, appStatus, protocolStatus)
    rec.contentLength = FCGI_EndRequestBody_LEN
    self.writeRecord(rec)
    if remove:
        del self._requests[req.requestId]
    if __debug__:
        _debug(2, ('end_request:    flags    =    %d' % req.flags))
    if ((not (req.flags & FCGI_KEEP_CONN)) and (not self._requests)):
        self._cleanupSocket()
        self._keepGoing = False
