File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -120,11 +120,13 @@ void DoubleBufferReader::ReadNext(std::vector<LoDTensor>* out) {
120
120
}
121
121
122
122
out->clear ();
123
- out->resize (buffer_[read_pos_].size ());
123
+ out->reserve (buffer_[read_pos_].size ());
124
124
// TODO(fengjiayi): This copy shall be reduced.
125
125
for (size_t i = 0 ; i < buffer_[read_pos_].size (); ++i) {
126
- TensorCopy (buffer_[read_pos_][i], platform::CPUPlace (), &out[i]);
127
- out[i].set_lod (buffer_[read_pos_][i].lod ());
126
+ LoDTensor dst;
127
+ TensorCopy (buffer_[read_pos_][i], platform::CPUPlace (), &dst);
128
+ dst.set_lod (buffer_[read_pos_][i].lod ());
129
+ out->push_back (dst);
128
130
}
129
131
130
132
++read_pos_;
@@ -134,13 +136,13 @@ void DoubleBufferReader::ReadNext(std::vector<LoDTensor>* out) {
134
136
buffer_not_full_.notify_all ();
135
137
}
136
138
137
- bool DoubleBufferReader::HasNext () {
139
+ bool DoubleBufferReader::HasNext () const {
138
140
return reader_->HasNext () || !buffer_.empty ();
139
141
}
140
142
141
143
void DoubleBufferReader::ProducerThreadFunc () {
142
144
while (reader_->HasNext ()) {
143
- std::unique_lock<std::mutex> lck (mtx );
145
+ std::unique_lock<std::mutex> lck (mtx_ );
144
146
while (((write_pos_ + 1 ) % kDoubleBufferSize ) == read_pos_) {
145
147
buffer_not_full_.wait (lck);
146
148
}
Original file line number Diff line number Diff line change @@ -140,7 +140,7 @@ class BatchReader : public DecoratedReader {
140
140
141
141
class DoubleBufferReader : public DecoratedReader {
142
142
public:
143
- DoubleBufferReader (ReaderBase* reader)
143
+ explicit DoubleBufferReader (ReaderBase* reader)
144
144
: DecoratedReader(reader), buffer_(kDoubleBufferSize ) {
145
145
framework::Async (std::bind (&DoubleBufferReader::ProducerThreadFunc, this ));
146
146
}
You can’t perform that action at this time.
0 commit comments