| 125 | }; |
| 126 | |
| 127 | Status GetStack(OpKernelContext* ctx, Stack** stack) { |
| 128 | if (ctx->input_dtype(0) == DT_RESOURCE) { |
| 129 | return LookupResource(ctx, HandleFromInput(ctx, 0), stack); |
| 130 | } else { |
| 131 | Tensor Tstack_handle = ctx->mutable_input(0, false); |
| 132 | if (Tstack_handle.NumElements() != 2) { |
| 133 | return errors::InvalidArgument( |
| 134 | "Stack handle must have two elements, but had shape: ", |
| 135 | Tstack_handle.shape().DebugString()); |
| 136 | } |
| 137 | const string& container = Tstack_handle.flat<tstring>()(0); |
| 138 | const string& stack_name = Tstack_handle.flat<tstring>()(1); |
| 139 | string key = strings::StrCat(container, stack_name); |
| 140 | ResourceMgr* rm = ctx->resource_manager(); |
| 141 | if (rm == nullptr) { |
| 142 | return errors::Internal("No resource manager."); |
| 143 | } |
| 144 | auto* step_container = ctx->step_container(); |
| 145 | if (step_container == nullptr) { |
| 146 | return errors::Internal("No step container."); |
| 147 | } |
| 148 | //TF_RETURN_IF_ERROR(rm->Lookup(step_container->name(), key, stack)); |
| 149 | TF_RETURN_IF_ERROR(step_container->Lookup(rm, key, stack)); |
| 150 | return Status::OK(); |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | std::atomic<int64> Stack::stack_counter{0}; |
| 155 |
no test coverage detected