diff --git a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc index 342cd2a54902f45367f7f93f9bccb7f42952bd93..f9a8058f2a32b6736d6513b017b761a31ddc2e37 100644 --- a/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc +++ b/paddle/fluid/operators/reader/create_double_buffer_reader_op.cc @@ -66,6 +66,9 @@ class DoubleBufferReader : public framework::DecoratedReader { void ReadNext(std::vector* out) override; void ReInit() override; + ~DoubleBufferReader() { EndPrefetcher(); } + + private: void StartPrefetcher() { channel_ = framework::MakeChannel(kChannelSize); prefetcher_ = std::thread([this] { PrefetchThreadFunc(); }); @@ -80,9 +83,6 @@ class DoubleBufferReader : public framework::DecoratedReader { channel_ = nullptr; } - ~DoubleBufferReader() { EndPrefetcher(); } - - private: void PrefetchThreadFunc(); std::thread prefetcher_;