diff options
author | Skye Wanderman-Milne <skyewm@google.com> | 2017-07-12 13:08:51 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-07-12 13:13:16 -0700 |
commit | 45a58d378ea081907d1aa7d8963c40e7fb3dcfe8 (patch) | |
tree | bd43bbeeb166561fca5e9e3ae1a0149305094b39 /tensorflow/c/python_api.cc | |
parent | 4f54336348fb40fb5eea2166b949f4457f447ef5 (diff) |
Introduce Python-only extensions to the C API
Implements an incomplete version of Operation._add_control_input()
using a new extension to make sure the plumbing works.
This also adds header guards to c_api_internal.h, which were missing. For some reason the missing guards caused problems in the cmake build even though there doesn't appear to be any #include cycles.
PiperOrigin-RevId: 161705859
Diffstat (limited to 'tensorflow/c/python_api.cc')
-rw-r--r-- | tensorflow/c/python_api.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tensorflow/c/python_api.cc b/tensorflow/c/python_api.cc new file mode 100644 index 0000000000..91e4e3cbb9 --- /dev/null +++ b/tensorflow/c/python_api.cc @@ -0,0 +1,28 @@ +/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/c/python_api.h" + +#include "tensorflow/c/c_api_internal.h" + +namespace tensorflow { + +void AddControlInput(TF_Graph* graph, TF_Operation* op, TF_Operation* input) { + // TODO(skyewm): make sure cycles are prevented + mutex_lock l(graph->mu); + graph->graph.AddControlEdge(&input->node, &op->node); +} + +} // namespace tensorflow |