@@ -157,9 +157,9 @@ class Multiplexer:
157
157
if (!m_Buffered || m_Units.size () < m_Buffered) {
158
158
auto cbt = Task<T ()>(std::move (cb));
159
159
auto fut = cbt.get_future ();
160
- auto cbc = kit::move_on_copy <Task<T ()>>(std::move (cbt));
160
+ auto cbc = std::make_shared <Task<T ()>>(std::move (cbt));
161
161
m_Units.emplace_back (cond, [cbc]() {
162
- cbc. get ( )();
162
+ (*cbc )();
163
163
});
164
164
m_CondVar.notify_one ();
165
165
return fut;
@@ -178,7 +178,7 @@ class Multiplexer:
178
178
if (!m_Buffered || m_Units.size () < m_Buffered) {
179
179
auto cbt = Task<T ()>(std::move (cb));
180
180
auto fut = cbt.get_future ();
181
- auto cbc = kit::move_on_copy <Task<T ()>>(std::move (cbt));
181
+ auto cbc = std::make_shared <Task<T ()>>(std::move (cbt));
182
182
m_Units.emplace_back (
183
183
std::function<bool ()>(),
184
184
std::function<void ()>()
@@ -187,7 +187,7 @@ class Multiplexer:
187
187
m_Units.back ().m_pPush = kit::make_unique<push_coro_t >(
188
188
[cbc, pullptr](pull_coro_t & sink){
189
189
*pullptr = &sink;
190
- cbc. get ( )();
190
+ (*cbc )();
191
191
}
192
192
);
193
193
auto * coroptr = m_Units.back ().m_pPush .get ();
@@ -230,13 +230,13 @@ class Multiplexer:
230
230
231
231
template <class R , class T >
232
232
std::future<R> when (std::future<T>& fut, std::function<R(std::future<T>&)> cb) {
233
- kit::move_on_copy <std::future<T>> futc (std::move (fut));
233
+ auto futc = std::make_shared <std::future<T>>(std::move (fut));
234
234
235
235
return task<void >([cb, futc]() {
236
- if (futc. get (). wait_for (std::chrono::seconds (0 )) ==
236
+ if (futc-> wait_for (std::chrono::seconds (0 )) ==
237
237
std::future_status::ready)
238
238
{
239
- cb (futc. get () );
239
+ cb (* futc);
240
240
}
241
241
else
242
242
throw kit::yield_exception ();
0 commit comments