mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-01-13 10:17:43 +08:00
77 lines
1.9 KiB
Cython
77 lines
1.9 KiB
Cython
cimport cython
|
|
|
|
from gevent.__greenlet_primitives cimport SwitchOutGreenletWithLoop
|
|
from gevent.__hub_local cimport get_hub_noargs as get_hub
|
|
|
|
cdef _None
|
|
cdef reraise
|
|
cdef dump_traceback
|
|
cdef load_traceback
|
|
|
|
|
|
cdef InvalidSwitchError
|
|
cdef Timeout
|
|
cdef bint _greenlet_imported
|
|
|
|
cdef extern from "greenlet/greenlet.h":
|
|
|
|
ctypedef class greenlet.greenlet [object PyGreenlet]:
|
|
pass
|
|
|
|
# These are actually macros and so much be included
|
|
# (defined) in each .pxd, as are the two functions
|
|
# that call them.
|
|
greenlet PyGreenlet_GetCurrent()
|
|
void PyGreenlet_Import()
|
|
|
|
cdef inline greenlet getcurrent():
|
|
return PyGreenlet_GetCurrent()
|
|
|
|
cdef inline void greenlet_init():
|
|
global _greenlet_imported
|
|
if not _greenlet_imported:
|
|
PyGreenlet_Import()
|
|
_greenlet_imported = True
|
|
|
|
cdef void _init()
|
|
|
|
cdef class _AbstractLinkable:
|
|
# We declare the __weakref__ here in the base (even though
|
|
# that's not really what we want) as a workaround for a Cython
|
|
# issue we see reliably on 3.7b4 and sometimes on 3.6. See
|
|
# https://github.com/cython/cython/issues/2270
|
|
cdef object __weakref__
|
|
cdef _notifier
|
|
cdef set _links
|
|
cdef readonly SwitchOutGreenletWithLoop hub
|
|
|
|
cpdef rawlink(self, callback)
|
|
cpdef bint ready(self)
|
|
cpdef unlink(self, callback)
|
|
|
|
cdef _check_and_notify(self)
|
|
@cython.locals(todo=set)
|
|
cpdef _notify_links(self)
|
|
cdef _wait_core(self, timeout, catch=*)
|
|
cdef _wait_return_value(self, waited, wait_success)
|
|
cdef _wait(self, timeout=*)
|
|
|
|
|
|
cdef class Event(_AbstractLinkable):
|
|
cdef bint _flag
|
|
|
|
cdef class AsyncResult(_AbstractLinkable):
|
|
cdef readonly _value
|
|
cdef readonly tuple _exc_info
|
|
|
|
# For the use of _imap.py
|
|
cdef public int _imap_task_index
|
|
|
|
cpdef get(self, block=*, timeout=*)
|
|
cpdef bint successful(self)
|
|
|
|
cpdef wait(self, timeout=*)
|
|
cpdef bint done(self)
|
|
|
|
cpdef bint cancel(self)
|
|
cpdef bint cancelled(self)
|