Skip to content

Commit ab6b94f

Browse files
committed
fix(probeqt): adapt qt scheduler to latest stdexec concepts
1 parent ed33ed9 commit ab6b94f

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

libs/probeqt/impl/qtstdexec.hpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class QThreadOperationState;
2121
class QThreadScheduler
2222
{
2323
public:
24+
using scheduler_concept = stdexec::scheduler_t;
25+
2426
explicit QThreadScheduler(QThread *thread)
2527
: thread_(thread)
2628
{}
@@ -34,7 +36,7 @@ class QThreadScheduler
3436
{
3537
QThread *thread;
3638
template <typename CPO>
37-
auto query(stdexec::get_completion_scheduler_t<CPO>) const noexcept
39+
auto query(stdexec::get_completion_scheduler_t<CPO>) const noexcept -> QThreadScheduler
3840
{
3941
return QThreadScheduler{thread};
4042
}
@@ -53,7 +55,7 @@ class QThreadScheduler
5355
class QThreadSender
5456
{
5557
public:
56-
using is_sender = void;
58+
using sender_concept = stdexec::sender_t;
5759
using completion_signatures =
5860
stdexec::completion_signatures<stdexec::set_value_t(), stdexec::set_error_t(std::exception_ptr)>;
5961

@@ -66,15 +68,15 @@ class QThreadScheduler
6668
return thread_;
6769
}
6870

69-
DefaultEnv query(stdexec::get_env_t) const noexcept
71+
auto get_env() const noexcept -> DefaultEnv
7072
{
7173
return {thread_};
7274
}
7375

74-
template <class Recv>
75-
QThreadOperationState<Recv> connect(Recv &&receiver)
76+
template <class Receiver>
77+
QThreadOperationState<Receiver> connect(Receiver receiver)
7678
{
77-
return QThreadOperationState<Recv>(std::forward<Recv>(receiver), thread());
79+
return QThreadOperationState<Receiver>(std::move(receiver), thread());
7880
}
7981

8082
private:
@@ -137,13 +139,13 @@ class QObjectSender
137139
}
138140
};
139141

140-
DefaultEnv query([[maybe_unused]] stdexec::get_env_t env) noexcept
142+
auto get_env() const noexcept -> DefaultEnv
141143
{
142144
return {obj_->thread()};
143145
}
144146

145147
public:
146-
using is_sender = void;
148+
using sender_concept = stdexec::sender_t;
147149
using completion_signatures = stdexec::completion_signatures<stdexec::set_value_t(Args...),
148150
stdexec::set_error_t(std::exception_ptr),
149151
stdexec::set_stopped_t()>;

0 commit comments

Comments
 (0)