Commit 4f554f17 authored by Hauke Goldhammer's avatar Hauke Goldhammer

Fix caf::bb::container_source

parent 555b27a4
...@@ -45,7 +45,7 @@ struct container_source_state { ...@@ -45,7 +45,7 @@ struct container_source_state {
// -- properties ------------------------------------------------------------- // -- properties -------------------------------------------------------------
size_t remaining() const { size_t remaining() {
return static_cast<size_t>(std::distance(i, xs.end())); return static_cast<size_t>(std::distance(i, xs.end()));
} }
...@@ -80,21 +80,21 @@ behavior container_source(container_source_type<Container>* self, Container xs, ...@@ -80,21 +80,21 @@ behavior container_source(container_source_type<Container>* self, Container xs,
// Spin up stream manager and connect the first sink. // Spin up stream manager and connect the first sink.
self->state.init(std::move(xs)); self->state.init(std::move(xs));
auto src = self->make_source( auto src = self->make_source(
std::move(sink), std::move(sink),
[&](unit_t&) { [&](unit_t&) {
// nop // nop
}, },
[self](unit_t&, downstream<value_type>& out, size_t hint) { [self](unit_t&, downstream<value_type>& out, size_t hint) {
auto& st = self->state; auto& st = self->state;
auto n = std::min(hint, st.remaining()); auto n = std::min(hint, st.remaining());
for (size_t pushed = 0; pushed < n; ++pushed) for (size_t pushed = 0; pushed < n; ++pushed)
out.push(std::move(*st.i++)); out.push(std::move(*st.i++));
}, },
[self](const unit_t&) { return self->state.at_end(); }); [self](const unit_t&) { return self->state.at_end(); });
// Add the remaining sinks. // Add the remaining sinks.
std::initializer_list<unit_t>{src.ptr()->add_outbound_path(sinks)...}; std::initializer_list<unit_t>{src.ptr()->add_outbound_path(sinks)...};
return {}; return {};
}; }
/// Convenience function for spawning container sources. /// Convenience function for spawning container sources.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment