WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
242598
Refine C++ coroutine use
https://bugs.webkit.org/show_bug.cgi?id=242598
Summary
Refine C++ coroutine use
Alex Christensen
Reported
2022-07-11 11:57:04 PDT
Task::promise_type::final_suspend() needs to return a std::experimental::suspend_always instead of a std::experimental::suspend_never, otherwise it crashes if we ever use co_return. We don't yet, but we probably will. ReceiveOperation and SendOperation inherit from std::experimental::suspend_never but override await_ready with an implementation more like std::experimental::suspend_always, and an await_suspend that actually does something interesting. Instead of inheriting from std::experimental::suspend_never, just write out everything it does, which just requires adding an await_resume that returns void.
Attachments
Add attachment
proposed patch, testcase, etc.
Alex Christensen
Comment 1
2022-07-11 12:01:56 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/2297
EWS
Comment 2
2022-07-13 16:53:43 PDT
Committed
252430@main
(270e5776c43a): <
https://commits.webkit.org/252430@main
> Reviewed commits have been landed. Closing PR #2297 and removing active labels.
Radar WebKit Bug Importer
Comment 3
2022-07-13 16:54:23 PDT
<
rdar://problem/96981634
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug