File tree Expand file tree Collapse file tree
packages/agent-container/src/workerd Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -224,6 +224,8 @@ export class LocalWorkerdSession implements WorkerdSession {
224224
225225 #bridge: LocalCapabilityBridgeServer | undefined ;
226226
227+ #runQueue: Promise < void > = Promise . resolve ( ) ;
228+
227229 private constructor (
228230 port : number ,
229231 options : WorkerdSessionOptions ,
@@ -335,6 +337,24 @@ export class LocalWorkerdSession implements WorkerdSession {
335337 public async run (
336338 input : WorkerdRunInput ,
337339 options : WorkerdRunOptions = { } ,
340+ ) : Promise < WorkerdRunResult > {
341+ const previousRun = this . #runQueue;
342+ let releaseRun = ( ) : void => { } ;
343+ this . #runQueue = new Promise < void > ( ( resolve ) => {
344+ releaseRun = resolve ;
345+ } ) ;
346+
347+ await previousRun ;
348+ try {
349+ return await this . #runUnlocked( input , options ) ;
350+ } finally {
351+ releaseRun ( ) ;
352+ }
353+ }
354+
355+ async #runUnlocked(
356+ input : WorkerdRunInput ,
357+ options : WorkerdRunOptions ,
338358 ) : Promise < WorkerdRunResult > {
339359 const preparedRun = await prepareWorkerdRun ( {
340360 input,
You can’t perform that action at this time.
0 commit comments