MCPcopy Index your code
hub / github.com/anomalyco/opencode / makeStop

Function makeStop

packages/opencode/src/server/server.ts:172–193  ·  view source on GitHub ↗
(state: ListenerState, unpublishMdns: Effect.Effect<void>, listenerUrl: URL)

Source from the content-addressed store, hash-verified

170}
171
172function makeStop(state: ListenerState, unpublishMdns: Effect.Effect<void>, listenerUrl: URL) {
173 return Effect.gen(function* () {
174 const forceCloseOnce = yield* Effect.cached(forceClose(state).pipe(Effect.ignore))
175 const closeScopeOnce = yield* Effect.cached(
176 Scope.close(state.scope, Exit.void).pipe(
177 Effect.ignore,
178 Effect.ensuring(
179 Effect.sync(() => {
180 if (url === listenerUrl) url = undefined
181 }),
182 ),
183 ),
184 )
185
186 return (close?: boolean) =>
187 Effect.gen(function* () {
188 yield* unpublishMdns
189 if (close) yield* forceCloseOnce
190 yield* closeScopeOnce
191 })
192 })
193}
194
195function forceClose(state: ListenerState) {
196 return Effect.all([state.http.closeAll, state.websockets.closeAll], { concurrency: "unbounded", discard: true })

Callers 1

server.tsFile · 0.85

Calls 3

forceCloseFunction · 0.85
syncMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected