| Index: mojo/public/python/src/python_system_helper.cc
|
| diff --git a/mojo/public/python/src/python_system_helper.cc b/mojo/public/python/src/python_system_helper.cc
|
| deleted file mode 100644
|
| index 91032053bff05d706deb63771da6bef7f32739fd..0000000000000000000000000000000000000000
|
| --- a/mojo/public/python/src/python_system_helper.cc
|
| +++ /dev/null
|
| @@ -1,79 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "mojo/public/python/src/python_system_helper.h"
|
| -
|
| -#include "Python.h"
|
| -
|
| -#include "mojo/public/cpp/environment/logging.h"
|
| -#include "mojo/public/cpp/system/macros.h"
|
| -#include "mojo/public/cpp/utility/run_loop.h"
|
| -
|
| -namespace {
|
| -
|
| -class ScopedGIL {
|
| - public:
|
| - ScopedGIL() {
|
| - state_ = PyGILState_Ensure();
|
| - }
|
| -
|
| - ~ScopedGIL() {
|
| - PyGILState_Release(state_);
|
| - }
|
| -
|
| - private:
|
| - PyGILState_STATE state_;
|
| -
|
| - MOJO_DISALLOW_COPY_AND_ASSIGN(ScopedGIL);
|
| -};
|
| -
|
| -class PythonClosure : public mojo::Closure::Runnable {
|
| - public:
|
| - PythonClosure(PyObject* callable) : callable_(callable) {
|
| - MOJO_CHECK(callable);
|
| - Py_XINCREF(callable);
|
| - }
|
| -
|
| - virtual ~PythonClosure() {
|
| - ScopedGIL acquire_gil;
|
| - Py_DECREF(callable_);
|
| - }
|
| -
|
| - virtual void Run() const MOJO_OVERRIDE {
|
| - ScopedGIL acquire_gil;
|
| - PyObject* empty_tuple = PyTuple_New(0);
|
| - if (!empty_tuple) {
|
| - mojo::RunLoop::current()->Quit();
|
| - return;
|
| - }
|
| -
|
| - PyObject* result = PyObject_CallObject(callable_, empty_tuple);
|
| - Py_DECREF(empty_tuple);
|
| - if (result) {
|
| - Py_DECREF(result);
|
| - } else {
|
| - mojo::RunLoop::current()->Quit();
|
| - return;
|
| - }
|
| - }
|
| -
|
| - private:
|
| - PyObject* callable_;
|
| -
|
| - MOJO_DISALLOW_COPY_AND_ASSIGN(PythonClosure);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -namespace mojo {
|
| -
|
| -Closure BuildClosure(PyObject* callable) {
|
| - if (!PyCallable_Check(callable))
|
| - return Closure();
|
| -
|
| - return Closure(
|
| - static_cast<mojo::Closure::Runnable*>(new PythonClosure(callable)));
|
| -}
|
| -
|
| -} // namespace mojo
|
|
|