import { continueRoomAutomatic, continueRoomAuctionClock, continueRoomBots } from './rooms'; // Coalesce polls and control requests inside this isolate. Database CAS fences // other isolates, restarts, seat recovery and human actions. const continuations = new Map>(); export function resumeRoom(code: string): Promise { const existing = continuations.get(code); if (existing) return existing; const pending = (async () => { await Promise.all([ (async () => { await continueRoomAutomatic(code); await continueRoomBots(code); })(), continueRoomAuctionClock(code, undefined, true), ]); })().finally(() => { if (continuations.get(code) === pending) continuations.delete(code); }); continuations.set(code, pending); return pending; }