Skip to content

Commit 66e857b

Browse files
kflansburgkentonvjasnell
authored
Coroutines Conversion: Migrate streams compression to coroutines (#866)
* Migrate streams compression to coroutines * Simplify exception throw Co-authored-by: Kenton Varda <kenton@cloudflare.com> * Simplify if statement Co-authored-by: James M Snell <jsnell@cloudflare.com> --------- Co-authored-by: Kenton Varda <kenton@cloudflare.com> Co-authored-by: James M Snell <jsnell@cloudflare.com>
1 parent 0b6f613 commit 66e857b

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/workerd/api/streams/compression.c++

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,16 +165,15 @@ public:
165165
kj::Promise<void> write(kj::ArrayPtr<const kj::ArrayPtr<const kj::byte>> pieces) override {
166166
KJ_SWITCH_ONEOF(state) {
167167
KJ_CASE_ONEOF(ended, Ended) {
168-
return JSG_KJ_EXCEPTION(FAILED, Error, "Write after close.");
169-
}
170-
KJ_CASE_ONEOF(exception, kj::Exception) {
171-
return kj::cp(exception);
168+
JSG_FAIL_REQUIRE(Error, "Write after close");
172169
}
170+
KJ_CASE_ONEOF(exception, kj::Exception) { kj::throwFatalException(kj::cp(exception)); }
173171
KJ_CASE_ONEOF(open, Open) {
174-
if (pieces.size() == 0) return kj::READY_NOW;
175-
return write(pieces[0].begin(), pieces[0].size()).then([this, pieces]() {
176-
return write(pieces.slice(1, pieces.size()));
177-
});
172+
if (pieces.size() != 0) {
173+
co_await write(pieces[0].begin(), pieces[0].size());
174+
co_await write(pieces.slice(1, pieces.size()));
175+
}
176+
co_return;
178177
}
179178
}
180179
KJ_UNREACHABLE;

0 commit comments

Comments
 (0)