コード例 #1
0
ファイル: log.py プロジェクト: sjl421/sarah
    class Handler(object):
        def __init__(self, server, _socket, l):
            self.l = l
            self.server = server
            self.f = ExceptionCatchingWrapper(IntSocketFile(_socket),
                                              self._on_exception)
            self.handler = LogServer.SocketHandler(self.f)
            self.socket = _socket
            self.running = True

        def _on_exception(self, attr, exc):
            if attr == 'send':
                self.interrupt()
                return 0
            raise exc

        def interrupt(self):
            self.f.interrupt()
            self.running = False

        def handle(self):
            logging.getLogger('').addHandler(self.handler)
            while self.server.running and self.running:
                rs, ws, xs = self.server.selectPool.select((), (),
                                                           (self.socket, ))
                if self.socket in xs:
                    break

        def cleanup(self):
            logging.getLogger('').removeHandler(self.handler)
            self.socket.close()
コード例 #2
0
    class Handler(object):
        def __init__(self, server, _socket, l):
            self.l = l
            self.server = server
            self.f = ExceptionCatchingWrapper(
                    IntSocketFile(_socket),
                    self._on_exception)
            self.handler = LogServer.SocketHandler(self.f)
            self.socket = _socket
            self.running = True

        def _on_exception(self, attr, exc):
            if attr == 'send':
                self.interrupt()
                return 0
            raise exc

        def interrupt(self):
            self.f.interrupt()
            self.running = False

        def handle(self):
            logging.getLogger('').addHandler(self.handler)
            while self.server.running and self.running:
                rs, ws, xs = self.server.selectPool.select(
                        (), (), (self.socket,))
                if self.socket in xs:
                    break

        def cleanup(self):
            logging.getLogger('').removeHandler(self.handler)
            self.socket.close()
コード例 #3
0
ファイル: log.py プロジェクト: sjl421/sarah
 def __init__(self, server, _socket, l):
     self.l = l
     self.server = server
     self.f = ExceptionCatchingWrapper(IntSocketFile(_socket),
                                       self._on_exception)
     self.handler = LogServer.SocketHandler(self.f)
     self.socket = _socket
     self.running = True
コード例 #4
0
 def __init__(self, server, _socket, l):
     self.l = l
     self.server = server
     self.f = ExceptionCatchingWrapper(
             IntSocketFile(_socket),
             self._on_exception)
     self.handler = LogServer.SocketHandler(self.f)
     self.socket = _socket
     self.running = True