File tree 2 files changed +44
-10
lines changed
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):
123
123
124
124
self .state = "connection"
125
125
126
- def __del__ (self ):
126
+ async def release_conn (self ):
127
127
if self .sock :
128
- self .sock .close_conn (None )
128
+ await self .sock .unpin ()
129
+ self .sock = None
130
+ return True
131
+ return False
129
132
130
133
131
134
async def run_cases (client , cases ):
@@ -352,6 +355,10 @@ async def test_no_wait_queue_timeout(self):
352
355
353
356
self .assertEqual (t .state , "connection" )
354
357
self .assertEqual (t .sock , s1 )
358
+ # Cleanup
359
+ await t .release_conn ()
360
+ await t .join ()
361
+ await pool .close ()
355
362
356
363
async def test_checkout_more_than_max_pool_size (self ):
357
364
pool = await self .create_pool (max_pool_size = 2 )
@@ -364,16 +371,26 @@ async def test_checkout_more_than_max_pool_size(self):
364
371
socks .append (sock )
365
372
366
373
tasks = []
367
- for _ in range (30 ):
374
+ for _ in range (10 ):
368
375
t = SocketGetter (self .c , pool )
369
376
await t .start ()
370
377
tasks .append (t )
371
378
await asyncio .sleep (1 )
372
379
for t in tasks :
373
380
self .assertEqual (t .state , "get_socket" )
374
-
381
+ # Cleanup
375
382
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 ()
377
394
378
395
async def test_maxConnecting (self ):
379
396
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):
123
123
124
124
self .state = "connection"
125
125
126
- def __del__ (self ):
126
+ def release_conn (self ):
127
127
if self .sock :
128
- self .sock .close_conn (None )
128
+ self .sock .unpin ()
129
+ self .sock = None
130
+ return True
131
+ return False
129
132
130
133
131
134
def run_cases (client , cases ):
@@ -352,6 +355,10 @@ def test_no_wait_queue_timeout(self):
352
355
353
356
self .assertEqual (t .state , "connection" )
354
357
self .assertEqual (t .sock , s1 )
358
+ # Cleanup
359
+ t .release_conn ()
360
+ t .join ()
361
+ pool .close ()
355
362
356
363
def test_checkout_more_than_max_pool_size (self ):
357
364
pool = self .create_pool (max_pool_size = 2 )
@@ -364,16 +371,26 @@ def test_checkout_more_than_max_pool_size(self):
364
371
socks .append (sock )
365
372
366
373
tasks = []
367
- for _ in range (30 ):
374
+ for _ in range (10 ):
368
375
t = SocketGetter (self .c , pool )
369
376
t .start ()
370
377
tasks .append (t )
371
378
time .sleep (1 )
372
379
for t in tasks :
373
380
self .assertEqual (t .state , "get_socket" )
374
-
381
+ # Cleanup
375
382
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 ()
377
394
378
395
def test_maxConnecting (self ):
379
396
client = self .rs_or_single_client ()
You can’t perform that action at this time.
0 commit comments