diff options
| author | Skip Montanaro <skip@pobox.com> | 2003-04-29 19:27:26 (GMT) | 
|---|---|---|
| committer | Skip Montanaro <skip@pobox.com> | 2003-04-29 19:27:26 (GMT) | 
| commit | c689918c941d366716c9a630414fb6703581b425 (patch) | |
| tree | 2b1bed403a1d3d4618a018bad79a25ce1f8b99b6 /Lib/socket.py | |
| parent | 26848a34d100f5ff9c3f2710d321d68f73204005 (diff) | |
| download | cpython-c689918c941d366716c9a630414fb6703581b425.zip cpython-c689918c941d366716c9a630414fb6703581b425.tar.gz cpython-c689918c941d366716c9a630414fb6703581b425.tar.bz2  | |
Regain throughput lost with the _socketobject wrapper.  The
throughput-sensitive methods are grabbed from the underlying _socket.socket
object.  Closes SF patch 729293.
Diffstat (limited to 'Lib/socket.py')
| -rw-r--r-- | Lib/socket.py | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/Lib/socket.py b/Lib/socket.py index 12f3c05..b9d4049 100644 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -131,27 +131,33 @@ def getfqdn(name=''):  _socketmethods = (      'bind', 'connect', 'connect_ex', 'fileno', 'listen',      'getpeername', 'getsockname', 'getsockopt', 'setsockopt', -    'recv', 'recvfrom', 'send', 'sendall', 'sendto', 'setblocking', +    'sendall', 'setblocking',      'settimeout', 'gettimeout', 'shutdown')  class _closedsocket(object):      __slots__ = [] -    def __getattr__(self, name): +    def _dummy(*args):          raise error(9, 'Bad file descriptor') +    send = recv = sendto = recvfrom = __getattr__ = _dummy  class _socketobject(object):      __doc__ = _realsocket.__doc__ -    __slots__ = ["_sock"] +    __slots__ = ["_sock", "send", "recv", "sendto", "recvfrom"]      def __init__(self, family=AF_INET, type=SOCK_STREAM, proto=0, _sock=None):          if _sock is None:              _sock = _realsocket(family, type, proto)          self._sock = _sock +        self.send = self._sock.send +        self.recv = self._sock.recv +        self.sendto = self._sock.sendto +        self.recvfrom = self._sock.recvfrom      def close(self):          self._sock = _closedsocket() +        self.send = self.recv = self.sendto = self.recvfrom = self._sock._dummy      close.__doc__ = _realsocket.close.__doc__      def accept(self):  | 
