Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1488)

Unified Diff: mojo/public/python/mojo/system.pyx

Issue 782693004: Update mojo sdk to rev f6c8ec07c01deebc13178d516225fd12695c3dc2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: hack mojo_system_impl gypi for android :| Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/python/mojo/system.pyx
diff --git a/mojo/public/python/mojo/system.pyx b/mojo/public/python/mojo/system.pyx
index f0a814a5e62eb8a4c5c6f4ad51c9451023383692..35b8093fd8ae402a09909dd74c1c68f2cbc68ad0 100644
--- a/mojo/public/python/mojo/system.pyx
+++ b/mojo/public/python/mojo/system.pyx
@@ -5,7 +5,6 @@
# distutils language = c++
cimport c_core
-cimport c_environment
from cpython.buffer cimport PyBUF_CONTIG
@@ -21,6 +20,8 @@ from libc.stdint cimport int32_t, int64_t, uint32_t, uint64_t, uintptr_t
import ctypes
import threading
+import mojo.system_impl
+
def SetSystemThunks(system_thunks_as_object):
"""Bind the basic Mojo Core functions.
@@ -29,6 +30,7 @@ def SetSystemThunks(system_thunks_as_object):
cdef const c_core.MojoSystemThunks* system_thunks = (
<const c_core.MojoSystemThunks*><uintptr_t>system_thunks_as_object)
c_core.MojoSetSystemThunks(system_thunks)
+ mojo.system_impl.SetSystemThunks(system_thunks_as_object)
HANDLE_INVALID = c_core.MOJO_HANDLE_INVALID
RESULT_OK = c_core.MOJO_RESULT_OK
@@ -347,7 +349,7 @@ cdef class Handle(object):
cdef c_core.MojoHandle handle = self._mojo_handle
cdef c_core.MojoHandleSignals csignals = signals
cdef c_core.MojoDeadline cdeadline = deadline
- cdef c_environment.MojoAsyncWaitID wait_id = _ASYNC_WAITER.AsyncWait(
+ wait_id = _ASYNC_WAITER.AsyncWait(
handle,
csignals,
cdeadline,
@@ -734,46 +736,40 @@ class DuplicateSharedBufferOptions(object):
_RUN_LOOPS = threading.local()
-cdef class RunLoop(object):
+class RunLoop(object):
"""RunLoop to use when using asynchronous operations on handles."""
- cdef c_environment.CRunLoop* c_run_loop
-
def __init__(self):
- assert not <uintptr_t>(c_environment.CRunLoopCurrent())
- self.c_run_loop = new c_environment.CRunLoop()
+ self.__run_loop = mojo.system_impl.RunLoop()
_RUN_LOOPS.loop = id(self)
- def __dealloc__(self):
+ def __del__(self):
del _RUN_LOOPS.loop
- del self.c_run_loop
-
- @staticmethod
- def Current():
- if hasattr(_RUN_LOOPS, 'loop'):
- return ctypes.cast(_RUN_LOOPS.loop, ctypes.py_object).value
- return None
def Run(self):
"""Run the runloop until Quit is called."""
- self.c_run_loop.Run()
+ return self.__run_loop.Run()
def RunUntilIdle(self):
"""Run the runloop until Quit is called or no operation is waiting."""
- self.c_run_loop.RunUntilIdle()
+ return self.__run_loop.RunUntilIdle()
def Quit(self):
"""Quit the runloop."""
- self.c_run_loop.Quit()
+ return self.__run_loop.Quit()
def PostDelayedTask(self, runnable, delay=0):
"""
Post a task on the runloop. This must be called from the thread owning the
runloop.
"""
- cdef c_environment.CClosure closure = c_environment.BuildClosure(runnable)
- self.c_run_loop.PostDelayedTask(closure, delay)
+ return self.__run_loop.PostDelayedTask(runnable, delay)
+
+ @staticmethod
+ def Current():
+ if hasattr(_RUN_LOOPS, 'loop'):
+ return ctypes.cast(_RUN_LOOPS.loop, ctypes.py_object).value
+ return None
-cdef c_environment.CEnvironment* _ENVIRONMENT = new c_environment.CEnvironment()
-cdef c_environment.PythonAsyncWaiter* _ASYNC_WAITER = new c_environment.PythonAsyncWaiter()
+_ASYNC_WAITER = mojo.system_impl.ASYNC_WAITER

Powered by Google App Engine
This is Rietveld 408576698