mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-13 23:52:06 +00:00
fix: skip reload disposal for fresh instances
Previously reload always called disposeInstance + emitted server.instance.disposed even when no previous entry existed in the cache, sending a phantom dispose event for an instance that was never loaded.
This commit is contained in:
@@ -123,9 +123,11 @@ export const layer: Layer.Layer<Service, never, Project.Service> = Layer.effect(
|
||||
cache.set(directory, entry)
|
||||
yield* Effect.gen(function* () {
|
||||
yield* Effect.logInfo("reloading instance", { directory })
|
||||
if (previous) yield* Deferred.await(previous.deferred).pipe(Effect.exit, Effect.asVoid)
|
||||
yield* Effect.promise(() => disposeInstance(directory))
|
||||
yield* emitDisposed({ directory, project: input.project?.id })
|
||||
if (previous) {
|
||||
yield* Deferred.await(previous.deferred).pipe(Effect.exit, Effect.asVoid)
|
||||
yield* Effect.promise(() => disposeInstance(directory))
|
||||
yield* emitDisposed({ directory, project: input.project?.id })
|
||||
}
|
||||
yield* completeLoad(directory, input, entry)
|
||||
}).pipe(Effect.forkIn(scope, { startImmediately: true }))
|
||||
return yield* restore(Deferred.await(entry.deferred))
|
||||
|
||||
Reference in New Issue
Block a user