fix deadlock when awaiting a sender completes inline with set_stopped#2038
fix deadlock when awaiting a sender completes inline with set_stopped#2038ericniebler merged 14 commits intoNVIDIA:mainfrom
set_stopped#2038Conversation
cf2306d to
04407ba
Compare
931ff8a to
b8cd4b6
Compare
|
@ericniebler FYI, the current changes in this PR (i.e. b8cd4b6) do fix both #2036 and #2041 here! |
|
Hooray! Thanks for letting me know. |
|
I want to add that the changes in this PR broke struct void_rcvr {
using receiver_concept = stdexec::receiver_tag;
auto get_env() const noexcept { return stdexec::env<>{}; }
void set_value() && noexcept {}
};
static_assert(!stdexec::sender_to<stdexec::task<void>, void_rcvr>);
EDIT: Ignore the last part, I misunderstood |
Encode cross-thread completion in ref count
|
/ok to test f3ae543 |
|
/ok to test 23793ef |
|
/ok to test b86e0a5 |
|
/ok to test 7dc615b |
i think the fact that it compiled before this pr is a bug. you'll get an error if you try to actually connect that receiver with the UPDATE: see for example https://godbolt.org/z/E5j9beGq1 |
I think you might have missed the I don't say that EDIT: See https://godbolt.org/z/M5M459jzo |
|
Ah thanks for clarifying. I'll look into it. |
fixes #2036