diff options
Diffstat (limited to 'tensorflow/core/kernels/queue_ops.cc')
-rw-r--r-- | tensorflow/core/kernels/queue_ops.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tensorflow/core/kernels/queue_ops.cc b/tensorflow/core/kernels/queue_ops.cc index f2ac09c4e6..d51dc4ecb0 100644 --- a/tensorflow/core/kernels/queue_ops.cc +++ b/tensorflow/core/kernels/queue_ops.cc @@ -425,6 +425,27 @@ class QueueSizeOp : public QueueOpKernel { REGISTER_KERNEL_BUILDER(Name("QueueSize").Device(DEVICE_CPU), QueueSizeOp); REGISTER_KERNEL_BUILDER(Name("QueueSizeV2").Device(DEVICE_CPU), QueueSizeOp); +class QueueIsClosedOp : public QueueOpKernel { + public: + explicit QueueIsClosedOp(OpKernelConstruction* context) + : QueueOpKernel(context) {} + + protected: + void ComputeAsync(OpKernelContext* ctx, QueueInterface* queue, + DoneCallback callback) override { + Tensor* Tqueue_is_closed = nullptr; + OP_REQUIRES_OK(ctx, ctx->allocate_output(0, TensorShape({}), &Tqueue_is_closed)); + Tqueue_is_closed->flat<bool>().setConstant(queue->is_closed()); + callback(); + } + + private: + TF_DISALLOW_COPY_AND_ASSIGN(QueueIsClosedOp); +}; + +REGISTER_KERNEL_BUILDER(Name("QueueIsClosed").Device(DEVICE_CPU), QueueIsClosedOp); +REGISTER_KERNEL_BUILDER(Name("QueueIsClosedV2").Device(DEVICE_CPU), QueueIsClosedOp); + class FakeQueueOp : public OpKernel { public: explicit FakeQueueOp(OpKernelConstruction* context) : OpKernel(context) { |