use a short timeout for new connections and no timeout for other ops

This commit is contained in:
Mike Dirolf 2009-04-03 09:32:53 -04:00
parent ac7e4bccfa
commit a0b2fa2fb2

View File

@ -31,7 +31,7 @@ _logger = logging.getLogger("pymongo.connection")
_logger.addHandler(logging.StreamHandler())
# _logger.setLevel(logging.DEBUG)
_TIMEOUT = 20.0
_CONNECT_TIMEOUT = 20.0
# TODO support auth for pooling
class Connection(object):
@ -184,8 +184,9 @@ class Connection(object):
try:
try:
sock = socket.socket()
sock.settimeout(_TIMEOUT)
sock.settimeout(_CONNECT_TIMEOUT)
sock.connect((host, port))
sock.settimeout(None)
master = self.__master(sock)
if master is True:
self.__host = host
@ -220,8 +221,9 @@ class Connection(object):
try:
self.__sockets[socket_number] = socket.socket()
sock = self.__sockets[socket_number]
sock.settimeout(_TIMEOUT)
sock.settimeout(_CONNECT_TIMEOUT)
sock.connect((self.host(), self.port()))
sock.settimeout(None)
_logger.debug("connected")
return
except socket.error: