@@ -140,11 +140,11 @@ std::shared_ptr<Engine> Stream::open(const std::string& name, Mode mode)
140140 dtl_->lock ();
141141 if (not engine_) {
142142 if (engine_type_ == Engine::Type::Staging) {
143- engine_ = std::make_shared<StagingEngine>(name, this );
143+ engine_ = std::make_shared<StagingEngine>(name, shared_from_this () );
144144 engine_->create_transport (transport_method_);
145145 } else if (engine_type_ == Engine::Type::File) {
146146 try {
147- engine_ = std::make_shared<FileEngine>(name, this );
147+ engine_ = std::make_shared<FileEngine>(name, shared_from_this () );
148148 engine_->create_transport (transport_method_);
149149 } catch (const IncorrectPathDefinitionException& e) {
150150 got_exception = true ;
@@ -222,7 +222,7 @@ std::shared_ptr<Variable> Stream::define_variable(const std::string& name, const
222222 return var->second ;
223223 }
224224 } else {
225- auto new_var = std::make_shared<Variable>(name, element_size, shape);
225+ auto new_var = std::make_shared<Variable>(name, element_size, shape, shared_from_this () );
226226 new_var->set_local_start_and_count (publisher, std::make_pair (start, count));
227227 variables_.try_emplace (name, new_var);
228228 return new_var;
@@ -248,7 +248,8 @@ std::shared_ptr<Variable> Stream::inquire_variable(const std::string& name) cons
248248 if (not engine_ || engine_->is_publisher (actor))
249249 return var->second ;
250250 else {
251- auto new_var = std::make_shared<Variable>(name, var->second ->get_element_size (), var->second ->get_shape ());
251+ auto new_var =
252+ std::make_shared<Variable>(name, var->second ->get_element_size (), var->second ->get_shape (), shared_from_this ());
252253 new_var->set_local_start_and_count (actor, std::make_pair (std::vector<size_t >(var->second ->get_shape ().size (), 0 ),
253254 std::vector<size_t >(var->second ->get_shape ().size (), 0 )));
254255 new_var->set_metadata (var->second ->get_metadata ());
0 commit comments