def METHOD_NAME(self):
    fp = self._socket.makefile('rb', 65536)
    try:
        while self._alive:
            try:
                filename, dl = self._rc_queue.get(timeout=.1)
                status, reason, msg = clusterIO._parse_response(fp)
                if not status == 200:
                    logger.error(('Error spooling %s: Response %d - status %d' % (filename, status, reason)) + ' msg: ' + str(msg))
                else:
                    if self._dir_manager:
                        # register file in cluster directory
                        fn = filename.split('?')[0]
                        url = self.url_ + fn
                        self._dir_manager.register_file(fn, url, dl)
            except queue.Empty:
                pass
            #TODO - more detailed error handling - e.g. socket timeouts
    finally:
        fp.close()