File tree 1 file changed +15
-10
lines changed
1 file changed +15
-10
lines changed Original file line number Diff line number Diff line change @@ -252,16 +252,7 @@ class Pool extends EventEmitter {
252
252
253
253
this . emit ( 'acquire' , client )
254
254
255
- let released = false
256
-
257
- client . release = ( err ) => {
258
- if ( released ) {
259
- throwOnDoubleRelease ( )
260
- }
261
-
262
- released = true
263
- this . _release ( client , idleListener , err )
264
- }
255
+ client . release = this . _releaseOnce ( client , idleListener )
265
256
266
257
client . removeListener ( 'error' , idleListener )
267
258
@@ -287,6 +278,20 @@ class Pool extends EventEmitter {
287
278
}
288
279
}
289
280
281
+ // returns a function that wraps _release and throws if called more than once
282
+ _releaseOnce ( client , idleListener ) {
283
+ let released = false
284
+
285
+ return ( err ) => {
286
+ if ( released ) {
287
+ throwOnDoubleRelease ( )
288
+ }
289
+
290
+ released = true
291
+ this . _release ( client , idleListener , err )
292
+ }
293
+ }
294
+
290
295
// release a client back to the poll, include an error
291
296
// to remove it from the pool
292
297
_release ( client , idleListener , err ) {
You can’t perform that action at this time.
0 commit comments