diff --git a/paddle/fluid/framework/reader.cc b/paddle/fluid/framework/reader.cc index 3231b2ab27a779c1b4f644e8d13b85826e9384bd..924bbd32bdfed5378c572c9931b4e62d01b04c38 100644 --- a/paddle/fluid/framework/reader.cc +++ b/paddle/fluid/framework/reader.cc @@ -36,7 +36,7 @@ void ReaderBase::Start() { } } -ReaderBase::~ReaderBase() {} +ReaderBase::~ReaderBase() { Shutdown(); } } // namespace framework } // namespace paddle diff --git a/paddle/fluid/framework/reader.h b/paddle/fluid/framework/reader.h index 9dc5fce4aa586594bff8730db98bab72cda5a69a..51fc887f34400a71479db2394adaa9a6e5eacf6e 100644 --- a/paddle/fluid/framework/reader.h +++ b/paddle/fluid/framework/reader.h @@ -39,9 +39,9 @@ class ReaderBase { protected: virtual void ReadNextImpl(std::vector* out) = 0; - virtual void ShutdownImpl() = 0; + virtual void ShutdownImpl() {} - virtual void StartImpl() = 0; + virtual void StartImpl() {} ReaderStatus status_{kRunning}; }; @@ -61,15 +61,8 @@ class DecoratedReader : public ReaderBase { std::shared_ptr reader_; }; -class FileReader : public ReaderBase { - public: - FileReader() : ReaderBase() {} - - protected: - void ShutdownImpl() override {} - - void StartImpl() override {} -}; +// FileReader is just a conceptual class. +class FileReader : public ReaderBase {}; // The ReaderHolder is used as reader' unified wrapper, // making it easier to access different type reader in Variables. diff --git a/paddle/fluid/operators/reader/create_py_reader_op.cc b/paddle/fluid/operators/reader/create_py_reader_op.cc index 9b4c6412e65d173e156e062ec416c7bc43995c9d..fb7a96cb73d12a37e98fd064b3daf719e2c26bb2 100644 --- a/paddle/fluid/operators/reader/create_py_reader_op.cc +++ b/paddle/fluid/operators/reader/create_py_reader_op.cc @@ -56,8 +56,8 @@ class CreatePyReaderOp : public framework::OperatorBase { const std::string& queue_name = Input("blocking_queue"); auto* queue_holder_var = scope.FindVar(queue_name); - PADDLE_ENFORCE( - queue_holder_var != nullptr, + PADDLE_ENFORCE_NOT_NULL( + queue_holder_var, "No LoDTensorBlockingQueueHolder variable with name %s found", queue_name); auto* queue_holder = diff --git a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc index 66f209b04e50703939e04596fe9469688830de74..61d94cfbd38bc0e43997f053de7a5d6fe4065a23 100644 --- a/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc +++ b/paddle/fluid/operators/reader/create_recordio_file_reader_op.cc @@ -22,8 +22,7 @@ template class RecordIOFileReader : public framework::FileReader { public: explicit RecordIOFileReader(const std::string& filename) - : FileReader(), - scanner_(filename), + : scanner_(filename), dev_ctx_(*platform::DeviceContextPool::Instance().Get( platform::CPUPlace())) { if (ThreadSafe) { @@ -42,7 +41,7 @@ class RecordIOFileReader : public framework::FileReader { } } - void ShutdownImpl() override { scanner_.Reset(); } + void StartImpl() override { scanner_.Reset(); } private: std::unique_ptr mutex_;