@@ -60,7 +60,7 @@ namespace nvexec::STDEXEC_STREAM_DETAIL_NS {
6060 friend void tag_invoke (Tag, __t && self, As&&... as) noexcept {
6161 SharedState& state = self.sh_state_ ;
6262
63- if constexpr (stream_sender<Sender>) {
63+ if constexpr (stream_sender<Sender, env_t >) {
6464 cudaStream_t stream = state.op_state2_ .get_stream ();
6565 using tuple_t = decayed_tuple<Tag, As...>;
6666 state.index_ = SharedState::variant_t ::template index_of<tuple_t >::value;
@@ -111,10 +111,10 @@ namespace nvexec::STDEXEC_STREAM_DETAIL_NS {
111111 using inner_receiver_t = stdexec::__t <receiver_t <stdexec::__id<Sender>, sh_state_t >>;
112112 using task_t = continuation_task_t <inner_receiver_t , variant_t >;
113113 using enqueue_receiver_t =
114- stdexec::__t <stream_enqueue_receiver<stdexec::__id <env_t >, variant_t >>;
114+ stdexec::__t <stream_enqueue_receiver<stdexec::__cvref_id <env_t >, variant_t >>;
115115 using intermediate_receiver = //
116116 stdexec::__t < std::conditional_t <
117- stream_sender<Sender>,
117+ stream_sender<Sender, env_t >,
118118 stdexec::__id<inner_receiver_t >,
119119 stdexec::__id<enqueue_receiver_t >>>;
120120 using inner_op_state_t = connect_result_t <Sender, intermediate_receiver>;
@@ -133,7 +133,7 @@ namespace nvexec::STDEXEC_STREAM_DETAIL_NS {
133133 ::cuda::std::atomic_flag started_{};
134134
135135 explicit sh_state_t (Sender& sndr, context_state_t context_state)
136- requires(stream_sender<Sender>)
136+ requires(stream_sender<Sender, env_t >)
137137 : context_state_(context_state)
138138 , stream_provider_(false , context_state)
139139 , data_(malloc_managed<variant_t >(stream_provider_.status_))
@@ -171,7 +171,7 @@ namespace nvexec::STDEXEC_STREAM_DETAIL_NS {
171171
172172 if (data_) {
173173 STDEXEC_DBG_ERR (cudaFree (data_));
174- if constexpr (stream_sender<Sender>) {
174+ if constexpr (stream_sender<Sender, env_t >) {
175175 STDEXEC_DBG_ERR (cudaEventDestroy (event_));
176176 }
177177 }
@@ -234,7 +234,7 @@ namespace nvexec::STDEXEC_STREAM_DETAIL_NS {
234234
235235 cudaError_t& status = op->shared_state_ ->stream_provider_ .status_ ;
236236 if (status == cudaSuccess) {
237- if constexpr (stream_sender<Sender>) {
237+ if constexpr (stream_sender<Sender, env_t >) {
238238 status = STDEXEC_DBG_ERR (
239239 cudaStreamWaitEvent (op->get_stream (), op->shared_state_ ->event_ ));
240240 }
0 commit comments