Skip to content

Commit 60b5271

Browse files
authored
[Flight] Call finishHaltedTask on sync aborted tasks in stream abort listeners (facebook#33743)
This is the same as we do for currently rendering tasks. They get effectively sync aborted when the listener is invoked. We potentially miss out on some debug info in that case but that would only apply to any entries inside the stream which doesn't really have their own debug info anyway.
1 parent 033edca commit 60b5271

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

packages/react-server/src/ReactFlightServer.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,8 +1079,9 @@ function serializeReadableStream(
10791079
signal.removeEventListener('abort', abortStream);
10801080
const reason = signal.reason;
10811081
if (enableHalt && request.type === PRERENDER) {
1082-
haltTask(streamTask, request);
10831082
request.abortableTasks.delete(streamTask);
1083+
haltTask(streamTask, request);
1084+
finishHaltedTask(streamTask, request);
10841085
} else {
10851086
// TODO: Make this use abortTask() instead.
10861087
erroredTask(request, streamTask, reason);
@@ -1208,8 +1209,9 @@ function serializeAsyncIterable(
12081209
signal.removeEventListener('abort', abortIterable);
12091210
const reason = signal.reason;
12101211
if (enableHalt && request.type === PRERENDER) {
1211-
haltTask(streamTask, request);
12121212
request.abortableTasks.delete(streamTask);
1213+
haltTask(streamTask, request);
1214+
finishHaltedTask(streamTask, request);
12131215
} else {
12141216
// TODO: Make this use abortTask() instead.
12151217
erroredTask(request, streamTask, signal.reason);
@@ -2968,7 +2970,9 @@ function serializeBlob(request: Request, blob: Blob): string {
29682970
signal.removeEventListener('abort', abortBlob);
29692971
const reason = signal.reason;
29702972
if (enableHalt && request.type === PRERENDER) {
2973+
request.abortableTasks.delete(newTask);
29712974
haltTask(newTask, request);
2975+
finishHaltedTask(newTask, request);
29722976
} else {
29732977
// TODO: Make this use abortTask() instead.
29742978
erroredTask(request, newTask, reason);

0 commit comments

Comments
 (0)