From 68a8e3302e92b831e5fc9d28e70b8c6578bb1433 Mon Sep 17 00:00:00 2001 From: Josh Betz Date: Tue, 22 Nov 2022 09:59:47 -0600 Subject: [PATCH] Better Pool.ready() We need to unref setTimeout so it doesn't block the app from closing Simplified version of a68426eca880f2ca2656d6a4f292163557905ea6 --- src/pool.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pool.ts b/src/pool.ts index 30183fb..396c074 100644 --- a/src/pool.ts +++ b/src/pool.ts @@ -59,7 +59,17 @@ export default class Pool extends EventEmitter { } async ready() { - return this.pool.ready(); + return new Promise( ( resolve ) => { + const isReady = () => { + if ( this.pool.available >= this.pool.min ) { + resolve( true ); + } else { + setTimeout( isReady, 100 ).unref(); + } + }; + + isReady(); + } ); } async use( fn: ( client: Memcached ) => Promise ): Promise {