def run(self):
        acceptors = []
        for sock in self.sockets:
            gsock = gsocket(sock.FAMILY, socket.SOCK_STREAM, fileno=sock.fileno())
            gsock.setblocking(1)
            hfun = partial(self.handle, gsock)
            acceptor = guv.spawn(_guv_serve, gsock, hfun, self.worker_connections)

            acceptors.append(acceptor)
            guv.gyield()

        try:
            while self.alive:
                self.notify()
                guv.sleep(self.timeout / 2)

        except (KeyboardInterrupt, __HOLE__):
            log.debug('KeyboardInterrupt, exiting')

        self.notify()
        try:
            with guv.Timeout(self.cfg.graceful_timeout) as t:
                for a in acceptors:
                    a.kill(guv.StopServe())

                for a in acceptors:
                    a.wait()
        except guv.Timeout as te:
            if te != t:
                raise

            for a in acceptors:
                a.kill()

        log.debug('GuvWorker exited')
dataset/ETHPy150Open veegee/guv/guv/support/gunicorn_worker.py/GuvWorker.run