Skip to content

Commit f6957bf

Browse files
committed
fix(rivetkit): prevent sleep races during disconnect and db work
1 parent b2d071c commit f6957bf

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

rivetkit-typescript/packages/rivetkit/src/actor/instance/connection-manager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ export class ConnectionManager<
335335

336336
this.#actor.inspector.emitter.emit("connectionsUpdated");
337337
this.#pendingDisconnectCount += 1;
338+
this.#actor.resetSleepTimer();
338339

339340
const attributes = {
340341
"rivet.conn.id": conn.id,

rivetkit-typescript/packages/rivetkit/src/actor/instance/mod.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2436,6 +2436,10 @@ export class ActorInstance<
24362436

24372437
if (timeoutMs !== undefined) {
24382438
this.#sleepTimeout = setTimeout(() => {
2439+
if (this.#canSleep() !== CanSleep.Yes) {
2440+
this.resetSleepTimer();
2441+
return;
2442+
}
24392443
this.startSleep();
24402444
}, timeoutMs);
24412445
}

0 commit comments

Comments
 (0)