message: Saving a couple of us in IteratorGetNextOp::ComputeAsync.
diff: @@ -20,9 +20,9 @@ limitations under the License.
  #include "tensorflow/core/framework/tensor.h"
  #include "tensorflow/core/framework/variant_op_registry.h"
  #include "tensorflow/core/graph/graph_constructor.h"
  -#include "tensorflow/core/kernels/ops_util.h"
  #include "tensorflow/core/kernels/data/dataset.h"
  #include "tensorflow/core/kernels/data/stats_aggregator.h"
  +#include "tensorflow/core/kernels/ops_util.h"
  #include "tensorflow/core/lib/core/threadpool.h"
  #include "tensorflow/core/lib/gtl/cleanup.h"
  #include "tensorflow/core/lib/random/random.h"
  @@ -705,11 +705,11 @@ class IteratorGetNextOp : public AsyncOpKernel {
  IteratorResource* iterator;
  OP_REQUIRES_OK(ctx,
  LookupResource(ctx, HandleFromInput(ctx, 0), &iterator));
  -
  // The call to `iterator->GetNext()` may block and depend on an
  // inter-op thread pool thread, so we issue the call from the
  // owned thread pool.
  - thread_pool_->Schedule([this, ctx, iterator, done]() {
  + thread_pool_->Schedule(std::bind(
  + [this, ctx, iterator](DoneCallback done) {
  core::ScopedUnref unref_iterator(iterator);
  std::vector<Tensor> components;
  @@ -735,7 +735,8 @@ class IteratorGetNextOp : public AsyncOpKernel {
  }
  done();
  - });
  + },
  + std::move(done)));
  }
  private:
  