import _socket
from _socket import *
from functools import partial
-from new import instancemethod
+from types import MethodType
try:
import _ssl
p = partial(meth,_m)
p.__name__ = _m
p.__doc__ = getattr(_realsocket,_m).__doc__
- m = instancemethod(p,None,_socketobject)
+ m = MethodType(p,None,_socketobject)
setattr(_socketobject,_m,m)
socket = SocketType = _socketobject
buffer_size = max(self._rbufsize, self.default_bufsize)
data_size = len(data)
write_offset = 0
+ view = memoryview(data)
try:
while write_offset < data_size:
- self._sock.sendall(buffer(data, write_offset, buffer_size))
+ self._sock.sendall(view[write_offset:write_offset+buffer_size])
write_offset += buffer_size
finally:
if write_offset < data_size:
remainder = data[write_offset:]
- del data # explicit free
+ del view, data # explicit free
self._wbuf.append(remainder)
self._wbuf_len = len(remainder)
try:
data = self._sock.recv(rbufsize)
except error, e:
- if e[0] == EINTR:
+ if e.args[0] == EINTR:
continue
raise
if not data:
try:
data = self._sock.recv(left)
except error, e:
- if e[0] == EINTR:
+ if e.args[0] == EINTR:
continue
raise
if not data:
except error, e:
# The try..except to catch EINTR was moved outside the
# recv loop to avoid the per byte overhead.
- if e[0] == EINTR:
+ if e.args[0] == EINTR:
continue
raise
break
try:
data = self._sock.recv(self._rbufsize)
except error, e:
- if e[0] == EINTR:
+ if e.args[0] == EINTR:
continue
raise
if not data:
try:
data = self._sock.recv(self._rbufsize)
except error, e:
- if e[0] == EINTR:
+ if e.args[0] == EINTR:
continue
raise
if not data: