aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/kernels/data/group_by_window_dataset_op.cc
diff options
context:
space:
mode:
authorGravatar Jiri Simsa <jsimsa@google.com>2018-05-31 13:43:43 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-05-31 13:45:55 -0700
commit89a55fef3316e0e270e0f87f71bd8c2d32443cc8 (patch)
tree20825ff4e2a98e83b3781c86751bc5d385d4f9fe /tensorflow/core/kernels/data/group_by_window_dataset_op.cc
parentb3adb58d84ebb91d893b647ab4081530460fb8ed (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.cc13
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(),
+ &current_group_iterator_);
}
mutex mu_;