Skip to content

Commit 0e9f1e2

Browse files
committed
Make ReaderBase thread safe and remove ThreadedReader
1 parent 0d2ccfb commit 0e9f1e2

File tree

5 files changed

+5
-93
lines changed

5 files changed

+5
-93
lines changed

paddle/fluid/framework/reader.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,21 @@ namespace paddle {
1818
namespace framework {
1919

2020
void ReaderBase::ReadNext(std::vector<LoDTensor> *out) {
21+
std::lock_guard<std::mutex> lock(mu_);
2122
PADDLE_ENFORCE_EQ(status_, ReaderStatus::kRunning);
2223
ReadNextImpl(out);
2324
}
2425

2526
void ReaderBase::Shutdown() {
27+
std::lock_guard<std::mutex> lock(mu_);
2628
if (status_ != ReaderStatus::kStopped) {
2729
ShutdownImpl();
2830
status_ = ReaderStatus::kStopped;
2931
}
3032
}
3133

3234
void ReaderBase::Start() {
35+
std::lock_guard<std::mutex> lock(mu_);
3336
if (status_ != ReaderStatus::kRunning) {
3437
StartImpl();
3538
status_ = ReaderStatus::kRunning;

paddle/fluid/framework/reader.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class ReaderBase {
4444
virtual void StartImpl() = 0;
4545

4646
ReaderStatus status_{kRunning};
47+
48+
mutable std::mutex mu_;
4749
};
4850

4951
class DecoratedReader : public ReaderBase {

paddle/fluid/operators/reader/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ reader_library(create_batch_reader_op SRCS create_batch_reader_op.cc)
2222
reader_library(create_recordio_file_reader_op SRCS create_recordio_file_reader_op.cc)
2323
reader_library(create_double_buffer_reader_op SRCS create_double_buffer_reader_op.cc)
2424
reader_library(create_multi_pass_reader_op SRCS create_multi_pass_reader_op.cc)
25-
reader_library(create_threaded_reader_op SRCS create_threaded_reader_op.cc)
2625
reader_library(create_custom_reader_op SRCS create_custom_reader_op.cc)
2726
reader_library(create_py_reader_op SRCS create_py_reader_op.cc)
2827

paddle/fluid/operators/reader/create_threaded_reader_op.cc

Lines changed: 0 additions & 84 deletions
This file was deleted.

python/paddle/fluid/layers/io.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -529,9 +529,6 @@ def open_files(filenames,
529529
main_prog_reader = multi_pass(
530530
reader=main_prog_reader, pass_num=pass_num)
531531

532-
if for_parallel:
533-
main_prog_reader = parallel(reader=main_prog_reader)
534-
535532
return monkey_patch_reader_methods(main_prog_reader)
536533

537534

@@ -647,11 +644,6 @@ def multi_pass(reader, pass_num):
647644
'create_multi_pass_reader', reader, {'pass_num': int(pass_num)})
648645

649646

650-
def parallel(reader):
651-
return __create_shared_decorated_reader__('create_threaded_reader', reader,
652-
{})
653-
654-
655647
def read_file(reader):
656648
"""
657649
Execute the given reader and get data via it.

0 commit comments

Comments
 (0)