'Attempt to read a single Record from the socket and process it.'

def process_input(self):

    while self._keepGoing:
        try:
            (r, w, e) = select.select([self._sock], [], [], 1.0)
        except ValueError:
            raise EOFError
        if r:
            break
    if (not self._keepGoing):
        return
    rec = Record()
    rec.read(self._sock)
    if (rec.type == FCGI_GET_VALUES):
        self._do_get_values(rec)
    elif (rec.type == FCGI_BEGIN_REQUEST):
        self._do_begin_request(rec)
    elif (rec.type == FCGI_ABORT_REQUEST):
        self._do_abort_request(rec)
    elif (rec.type == FCGI_PARAMS):
        self._do_params(rec)
    elif (rec.type == FCGI_STDIN):
        self._do_stdin(rec)
    elif (rec.type == FCGI_DATA):
        self._do_data(rec)
    elif (rec.requestId == FCGI_NULL_REQUEST_ID):
        self._do_unknown_type(rec)
    else:
        pass
