File tree Expand file tree Collapse file tree 2 files changed +44
-10
lines changed Expand file tree Collapse file tree 2 files changed +44
-10
lines changed Original file line number Diff line number Diff line change @@ -123,9 +123,12 @@ async def run_mongo_thread(self):
123123
124124 self .state = "connection"
125125
126- def __del__ (self ):
126+ async def release_conn (self ):
127127 if self .sock :
128- self .sock .close_conn (None )
128+ await self .sock .unpin ()
129+ self .sock = None
130+ return True
131+ return False
129132
130133
131134async def run_cases (client , cases ):
@@ -352,6 +355,10 @@ async def test_no_wait_queue_timeout(self):
352355
353356 self .assertEqual (t .state , "connection" )
354357 self .assertEqual (t .sock , s1 )
358+ # Cleanup
359+ await t .release_conn ()
360+ await t .join ()
361+ await pool .close ()
355362
356363 async def test_checkout_more_than_max_pool_size (self ):
357364 pool = await self .create_pool (max_pool_size = 2 )
@@ -364,16 +371,26 @@ async def test_checkout_more_than_max_pool_size(self):
364371 socks .append (sock )
365372
366373 tasks = []
367- for _ in range (30 ):
374+ for _ in range (10 ):
368375 t = SocketGetter (self .c , pool )
369376 await t .start ()
370377 tasks .append (t )
371378 await asyncio .sleep (1 )
372379 for t in tasks :
373380 self .assertEqual (t .state , "get_socket" )
374-
381+ # Cleanup
375382 for socket_info in socks :
376- socket_info .close_conn (None )
383+ await socket_info .unpin ()
384+ while tasks :
385+ to_remove = []
386+ for t in tasks :
387+ if await t .release_conn ():
388+ to_remove .append (t )
389+ await t .join ()
390+ for t in to_remove :
391+ tasks .remove (t )
392+ await asyncio .sleep (0.05 )
393+ await pool .close ()
377394
378395 async def test_maxConnecting (self ):
379396 client = await self .async_rs_or_single_client ()
Original file line number Diff line number Diff line change @@ -123,9 +123,12 @@ def run_mongo_thread(self):
123123
124124 self .state = "connection"
125125
126- def __del__ (self ):
126+ def release_conn (self ):
127127 if self .sock :
128- self .sock .close_conn (None )
128+ self .sock .unpin ()
129+ self .sock = None
130+ return True
131+ return False
129132
130133
131134def run_cases (client , cases ):
@@ -352,6 +355,10 @@ def test_no_wait_queue_timeout(self):
352355
353356 self .assertEqual (t .state , "connection" )
354357 self .assertEqual (t .sock , s1 )
358+ # Cleanup
359+ t .release_conn ()
360+ t .join ()
361+ pool .close ()
355362
356363 def test_checkout_more_than_max_pool_size (self ):
357364 pool = self .create_pool (max_pool_size = 2 )
@@ -364,16 +371,26 @@ def test_checkout_more_than_max_pool_size(self):
364371 socks .append (sock )
365372
366373 tasks = []
367- for _ in range (30 ):
374+ for _ in range (10 ):
368375 t = SocketGetter (self .c , pool )
369376 t .start ()
370377 tasks .append (t )
371378 time .sleep (1 )
372379 for t in tasks :
373380 self .assertEqual (t .state , "get_socket" )
374-
381+ # Cleanup
375382 for socket_info in socks :
376- socket_info .close_conn (None )
383+ socket_info .unpin ()
384+ while tasks :
385+ to_remove = []
386+ for t in tasks :
387+ if t .release_conn ():
388+ to_remove .append (t )
389+ t .join ()
390+ for t in to_remove :
391+ tasks .remove (t )
392+ time .sleep (0.05 )
393+ pool .close ()
377394
378395 def test_maxConnecting (self ):
379396 client = self .rs_or_single_client ()
You can’t perform that action at this time.
0 commit comments