|
|
|
|
@ -137,10 +137,9 @@ export class Batch {
|
|
|
|
|
#fork_commit_callbacks = new Set();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Async effects that are currently in flight
|
|
|
|
|
* @type {Map<Effect, number>}
|
|
|
|
|
* The number of async effects that are currently in flight
|
|
|
|
|
*/
|
|
|
|
|
#pending = new Map();
|
|
|
|
|
#pending = 0;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Async effects that are currently in flight, _not_ inside a pending boundary
|
|
|
|
|
@ -336,7 +335,7 @@ export class Batch {
|
|
|
|
|
reset_branch(e, t);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (this.#pending.size === 0) {
|
|
|
|
|
if (this.#pending === 0) {
|
|
|
|
|
batches.delete(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -646,8 +645,7 @@ export class Batch {
|
|
|
|
|
* @param {Effect} effect
|
|
|
|
|
*/
|
|
|
|
|
increment(blocking, effect) {
|
|
|
|
|
let pending_count = this.#pending.get(effect) ?? 0;
|
|
|
|
|
this.#pending.set(effect, pending_count + 1);
|
|
|
|
|
this.#pending += 1;
|
|
|
|
|
|
|
|
|
|
if (blocking) {
|
|
|
|
|
let blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;
|
|
|
|
|
@ -660,13 +658,7 @@ export class Batch {
|
|
|
|
|
* @param {Effect} effect
|
|
|
|
|
*/
|
|
|
|
|
decrement(blocking, effect) {
|
|
|
|
|
let pending_count = this.#pending.get(effect) ?? 0;
|
|
|
|
|
|
|
|
|
|
if (pending_count === 1) {
|
|
|
|
|
this.#pending.delete(effect);
|
|
|
|
|
} else {
|
|
|
|
|
this.#pending.set(effect, pending_count - 1);
|
|
|
|
|
}
|
|
|
|
|
this.#pending -= 1;
|
|
|
|
|
|
|
|
|
|
if (blocking) {
|
|
|
|
|
let blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;
|
|
|
|
|
|