@@ -110,8 +110,7 @@ class Pool {
110
110
111
111
request = new PendingRequest ( key , resolve , reject , timeoutId , this . _log )
112
112
allRequests [ key ] . push ( request )
113
- const pool = this . _getOrInitializePoolFor ( key )
114
- this . _processPendingAcquireRequests ( address , pool )
113
+ this . _processPendingAcquireRequests ( address )
115
114
} )
116
115
}
117
116
@@ -206,7 +205,7 @@ class Pool {
206
205
if ( this . _log . isDebugEnabled ( ) ) {
207
206
this . _log . debug ( `${ resource } acquired from the pool ${ key } ` )
208
207
}
209
- return resource
208
+ return { resource, pool }
210
209
} else {
211
210
await this . _destroy ( resource )
212
211
}
@@ -220,7 +219,7 @@ class Pool {
220
219
this . activeResourceCount ( address ) + this . _pendingCreates [ key ]
221
220
if ( numConnections >= this . _maxSize ) {
222
221
// Will put this request in queue instead since the pool is full
223
- return null
222
+ return { resource : null , pool }
224
223
}
225
224
}
226
225
@@ -239,7 +238,7 @@ class Pool {
239
238
} finally {
240
239
this . _pendingCreates [ key ] = this . _pendingCreates [ key ] - 1
241
240
}
242
- return resource
241
+ return { resource, pool }
243
242
}
244
243
245
244
async _release ( address , resource , pool ) {
@@ -288,7 +287,7 @@ class Pool {
288
287
}
289
288
resourceReleased ( key , this . _activeResourceCounts )
290
289
291
- this . _processPendingAcquireRequests ( address , pool )
290
+ this . _processPendingAcquireRequests ( address )
292
291
}
293
292
294
293
async _purgeKey ( key ) {
@@ -306,7 +305,7 @@ class Pool {
306
305
}
307
306
}
308
307
309
- _processPendingAcquireRequests ( address , pool ) {
308
+ _processPendingAcquireRequests ( address ) {
310
309
const key = address . asKey ( )
311
310
const requests = this . _acquireRequests [ key ]
312
311
if ( requests ) {
@@ -318,9 +317,9 @@ class Pool {
318
317
// failed to acquire/create a new connection to resolve the pending acquire request
319
318
// propagate the error by failing the pending request
320
319
pendingRequest . reject ( error )
321
- return null
320
+ return { resource : null }
322
321
} )
323
- . then ( resource => {
322
+ . then ( ( { resource, pool } ) => {
324
323
if ( resource ) {
325
324
// managed to acquire a valid resource from the pool
326
325
0 commit comments