MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / acquire

Function acquire

packages/plugins/mcp/src/sdk/connection-pool.ts:115–140  ·  view source on GitHub ↗
(key: string, connector: McpConnector, forceFresh: boolean)

Source from the content-addressed store, hash-verified

113 });
114
115 const acquire = (key: string, connector: McpConnector, forceFresh: boolean) =>
116 Effect.gen(function* () {
117 yield* sweepExpired;
118 if (forceFresh) {
119 const connection = yield* connector;
120 return { connection, reused: false } satisfies ConnectionLease;
121 }
122
123 const taken = yield* Effect.sync(() => {
124 const entry = idle.get(key);
125 if (!entry) return { connection: undefined, expired: undefined };
126 idle.delete(key);
127 if (Date.now() - entry.idleSince >= IDLE_TTL_MS) {
128 return { connection: undefined, expired: entry.connection };
129 }
130 return { connection: entry.connection, expired: undefined };
131 });
132
133 if (taken.expired) yield* closeQuietly(taken.expired);
134 if (taken.connection) {
135 return { connection: taken.connection, reused: true } satisfies ConnectionLease;
136 }
137
138 const connection = yield* connector;
139 return { connection, reused: false } satisfies ConnectionLease;
140 });
141
142 const release = <A, E>(key: string, lease: ConnectionLease, exit: Exit.Exit<A, E>) =>
143 Effect.gen(function* () {

Callers 1

runFunction · 0.85

Calls 4

closeQuietlyFunction · 0.70
syncMethod · 0.65
getMethod · 0.65
deleteMethod · 0.65

Tested by

no test coverage detected