diff --git a/paddle/fluid/framework/reader.cc b/paddle/fluid/framework/reader.cc index e1d2ac79cf0d9eef7bdd46fb0074480b891a6144..9884e94121960aafa15445d6144d48f6742cbc12 100644 --- a/paddle/fluid/framework/reader.cc +++ b/paddle/fluid/framework/reader.cc @@ -21,6 +21,7 @@ ReaderBase::~ReaderBase() {} void ReaderBase::InsertDecoratedReader( const std::shared_ptr &decorated_reader) { + std::lock_guard guard(decorated_readers_mtx_); decorated_readers_.emplace_back(decorated_reader); } diff --git a/paddle/fluid/framework/reader.h b/paddle/fluid/framework/reader.h index 730e3faace1a92c071861e65262141a9edd41c3b..01ef349300f457b02d1b6f42be8a136f294f2429 100644 --- a/paddle/fluid/framework/reader.h +++ b/paddle/fluid/framework/reader.h @@ -45,6 +45,7 @@ class ReaderBase { const std::shared_ptr& decorated_reader); // A set of which readers that decorated this reader. std::vector> decorated_readers_; + std::mutex decorated_readers_mtx_; }; class DecoratedReader : public ReaderBase,