@@ -73,15 +73,25 @@ export namespace Session {
7373 ) ,
7474 }
7575
76- const state = App . state ( "session" , ( ) => {
77- const sessions = new Map < string , Info > ( )
78- const messages = new Map < string , Message . Info [ ] > ( )
79-
80- return {
81- sessions,
82- messages,
83- }
84- } )
76+ const state = App . state (
77+ "session" ,
78+ ( ) => {
79+ const sessions = new Map < string , Info > ( )
80+ const messages = new Map < string , Message . Info [ ] > ( )
81+ const pending = new Map < string , AbortController > ( )
82+
83+ return {
84+ sessions,
85+ messages,
86+ pending,
87+ }
88+ } ,
89+ async ( state ) => {
90+ for ( const [ _ , controller ] of state . pending ) {
91+ controller . abort ( )
92+ }
93+ } ,
94+ )
8595
8696 export async function create ( parentID ?: string ) {
8797 const result : Info = {
@@ -174,10 +184,10 @@ export namespace Session {
174184 }
175185
176186 export function abort ( sessionID : string ) {
177- const controller = pending . get ( sessionID )
187+ const controller = state ( ) . pending . get ( sessionID )
178188 if ( ! controller ) return false
179189 controller . abort ( )
180- pending . delete ( sessionID )
190+ state ( ) . pending . delete ( sessionID )
181191 return true
182192 }
183193
@@ -737,17 +747,16 @@ export namespace Session {
737747 await updateMessage ( next )
738748 }
739749
740- const pending = new Map < string , AbortController > ( )
741750 function lock ( sessionID : string ) {
742751 log . info ( "locking" , { sessionID } )
743- if ( pending . has ( sessionID ) ) throw new BusyError ( sessionID )
752+ if ( state ( ) . pending . has ( sessionID ) ) throw new BusyError ( sessionID )
744753 const controller = new AbortController ( )
745- pending . set ( sessionID , controller )
754+ state ( ) . pending . set ( sessionID , controller )
746755 return {
747756 signal : controller . signal ,
748757 [ Symbol . dispose ] ( ) {
749758 log . info ( "unlocking" , { sessionID } )
750- pending . delete ( sessionID )
759+ state ( ) . pending . delete ( sessionID )
751760 } ,
752761 }
753762 }
0 commit comments