| 289 | self.workers = [] |
| 290 | |
| 291 | def start(self): |
| 292 | # bind socket |
| 293 | sock = self.sock = socket.socket() |
| 294 | sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
| 295 | sock.bind((self.args.host, self.args.port)) |
| 296 | sock.listen(1024) |
| 297 | sock.setblocking(False) |
| 298 | |
| 299 | # start processes |
| 300 | for idx in range(self.args.workers): |
| 301 | self.workers.append(Worker(self, self.loop, self.args, sock)) |
| 302 | |
| 303 | self.loop.add_signal_handler(signal.SIGINT, lambda: self.loop.stop()) |
| 304 | self.loop.run_forever() |
| 305 | |
| 306 | |
| 307 | def main(): |