diff options
author | 2018-05-31 13:43:43 -0700 | |
---|---|---|
committer | 2018-05-31 13:45:55 -0700 | |
commit | 89a55fef3316e0e270e0f87f71bd8c2d32443cc8 (patch) | |
tree | 20825ff4e2a98e83b3781c86751bc5d385d4f9fe /tensorflow/core/kernels/data/group_by_window_dataset_op.cc | |
parent | b3adb58d84ebb91d893b647ab4081530460fb8ed (diff) |
[tf.data] Changing signature of `MakeIterator` to enable propagating error status.
PiperOrigin-RevId: 198772254
Diffstat (limited to 'tensorflow/core/kernels/data/group_by_window_dataset_op.cc')
-rw-r--r-- | tensorflow/core/kernels/data/group_by_window_dataset_op.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/tensorflow/core/kernels/data/group_by_window_dataset_op.cc b/tensorflow/core/kernels/data/group_by_window_dataset_op.cc index 03f847ce9c..f9cc5d26b0 100644 --- a/tensorflow/core/kernels/data/group_by_window_dataset_op.cc +++ b/tensorflow/core/kernels/data/group_by_window_dataset_op.cc @@ -118,7 +118,7 @@ class GroupByWindowDatasetOp : public UnaryDatasetOpKernel { ~Dataset() override { input_->Unref(); } - std::unique_ptr<IteratorBase> MakeIterator( + std::unique_ptr<IteratorBase> MakeIteratorInternal( const string& prefix) const override { return std::unique_ptr<IteratorBase>( new Iterator({this, strings::StrCat(prefix, "::GroupByWindow")})); @@ -198,8 +198,11 @@ class GroupByWindowDatasetOp : public UnaryDatasetOpKernel { class Iterator : public DatasetIterator<Dataset> { public: explicit Iterator(const Params& params) - : DatasetIterator<Dataset>(params), - input_impl_(params.dataset->input_->MakeIterator(params.prefix)) {} + : DatasetIterator<Dataset>(params) {} + + Status Initialize(IteratorContext* ctx) override { + return dataset()->input_->MakeIterator(ctx, prefix(), &input_impl_); + } Status GetNextInternal(IteratorContext* ctx, std::vector<Tensor>* out_tensors, @@ -484,8 +487,8 @@ class GroupByWindowDatasetOp : public UnaryDatasetOpKernel { GetDatasetFromVariantTensor(return_values[0], &returned_dataset)); // Create an iterator for the dataset that was returned by `f`. - current_group_iterator_ = returned_dataset->MakeIterator(prefix()); - return Status::OK(); + return returned_dataset->MakeIterator(ctx, prefix(), + ¤t_group_iterator_); } mutex mu_; |