File tree Expand file tree Collapse file tree 1 file changed +15
-10
lines changed
Expand file tree Collapse file tree 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 {
252252
253253 this . emit ( 'acquire' , client )
254254
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 )
265256
266257 client . removeListener ( 'error' , idleListener )
267258
@@ -287,6 +278,20 @@ class Pool extends EventEmitter {
287278 }
288279 }
289280
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+
290295 // release a client back to the poll, include an error
291296 // to remove it from the pool
292297 _release ( client , idleListener , err ) {
You can’t perform that action at this time.
0 commit comments