MCPcopy Index your code
hub / github.com/loopbackio/loopback-next / acquire

Method acquire

extensions/pooling/src/pooling.ts:188–210  ·  view source on GitHub ↗

* Acquire a new instance * @param requestCtx - Optional request context, default to the owning context

(requestCtx: Context = this.context)

Source from the content-addressed store, hash-verified

186 * @param requestCtx - Optional request context, default to the owning context
187 */
188 async acquire(requestCtx: Context = this.context) {
189 debug('Acquiring a resource from the pool for context %s', requestCtx.name);
190 const resource = await this.pool.acquire();
191
192 try {
193 // Try factory-level acquire hook first
194 if (this.factory.acquire) {
195 await this.factory.acquire(resource, requestCtx);
196 } else {
197 // Fall back to resource-level acquire hook
198 await invokePoolableMethod(resource as Poolable, 'acquire', requestCtx);
199 }
200 } catch (err) {
201 await this.pool.destroy(resource);
202 throw err;
203 }
204 debug(
205 'Resource acquired from the pool for context %s',
206 requestCtx.name,
207 resource,
208 );
209 return resource;
210 }
211
212 /**
213 * Release the resource back to the pool.

Callers 1

runMethod · 0.95

Calls 3

invokePoolableMethodFunction · 0.85
acquireMethod · 0.65
destroyMethod · 0.45

Tested by

no test coverage detected