@@ -287,20 +287,20 @@ def __init__(self, host=None, port=None, max_pool_size=100,
287287 options [option ] = value
288288 options .update (opts )
289289
290- self .__max_pool_size = common .validate_positive_integer_or_none (
291- 'max_pool_size' , max_pool_size )
292-
293290 self .__cursor_manager = CursorManager (self )
294291
295292 self .__repl = options .get ('replicaset' )
296293 self .__direct = len (seeds ) == 1 and not self .__repl
297294
298- self .__net_timeout = options .get ('sockettimeoutms' )
299- self .__conn_timeout = options .get ('connecttimeoutms' )
300- self .__wait_queue_timeout = options .get ('waitqueuetimeoutms' )
301- self .__wait_queue_multiple = options .get ('waitqueuemultiple' )
295+ max_pool_size = common .validate_positive_integer_or_none (
296+ 'max_pool_size' , max_pool_size )
297+ connect_timeout = options .get ('connecttimeoutms' )
298+ socket_timeout = options .get ('sockettimeoutms' )
299+ wait_queue_timeout = options .get ('waitqueuetimeoutms' )
300+ wait_queue_multiple = options .get ('waitqueuemultiple' )
301+ use_greenlets = options .get ('use_greenlets' , False )
302302
303- self . __ssl_ctx = None
303+ ssl_context = None
304304 use_ssl = options .get ('ssl' , None )
305305 keyfile = options .get ('ssl_keyfile' , None )
306306 certfile = options .get ('ssl_certfile' , None )
@@ -335,13 +335,21 @@ def __init__(self, host=None, port=None, max_pool_size=100,
335335 ctx .load_verify_locations (ca_certs )
336336 if cert_reqs is not None :
337337 ctx .verify_mode = cert_reqs
338- self .__ssl_ctx = ctx
338+ ssl_context = ctx
339+
340+ self .__pool_opts = pool .PoolOptions (
341+ max_pool_size = max_pool_size ,
342+ connect_timeout = connect_timeout ,
343+ socket_timeout = socket_timeout ,
344+ wait_queue_timeout = wait_queue_timeout ,
345+ wait_queue_multiple = wait_queue_multiple ,
346+ ssl_context = ssl_context ,
347+ use_greenlets = use_greenlets )
339348
340- self .__use_greenlets = options .get ('use_greenlets' , False )
341349 self .__pool_class = pool_class
342350
343351 self .__connecting = False
344- if self . __use_greenlets :
352+ if use_greenlets :
345353 # Greenlets don't need to lock around access to the Member;
346354 # they're only interrupted when they do I/O.
347355 self .__connecting_lock = thread_util .DummyLock ()
@@ -352,7 +360,7 @@ def __init__(self, host=None, port=None, max_pool_size=100,
352360 self .__event_class = event_class
353361 else :
354362 # Prevent a cycle; this lambda shouldn't refer to self.
355- g = self . __use_greenlets
363+ g = use_greenlets
356364 event_class = lambda : thread_util .create_event (g )
357365 self .__event_class = event_class
358366
@@ -476,15 +484,7 @@ def _purge_credentials(self, source):
476484 del self .__auth_credentials [source ]
477485
478486 def __create_pool (self , pair ):
479- return self .__pool_class (
480- pair ,
481- self .__max_pool_size ,
482- self .__net_timeout ,
483- self .__conn_timeout ,
484- self .__ssl_ctx ,
485- use_greenlets = self .__use_greenlets ,
486- wait_queue_timeout = self .__wait_queue_timeout ,
487- wait_queue_multiple = self .__wait_queue_multiple )
487+ return self .__pool_class (pair , self .__pool_opts )
488488
489489 def __check_auth (self , sock_info ):
490490 """Authenticate using cached database credentials.
@@ -570,7 +570,7 @@ def max_pool_size(self):
570570 .. versionchanged:: 2.6
571571 .. versionadded:: 1.11
572572 """
573- return self .__max_pool_size
573+ return self .__pool_opts . max_pool_size
574574
575575 @property
576576 def use_greenlets (self ):
@@ -579,7 +579,7 @@ def use_greenlets(self):
579579
580580 .. versionadded:: 2.4.2
581581 """
582- return self .__use_greenlets
582+ return self .__pool_opts . use_greenlets
583583
584584 @property
585585 def nodes (self ):
0 commit comments