aboutsummaryrefslogtreecommitdiffstats
path: root/python/gevent/_event.pxd
diff options
context:
space:
mode:
authorJames Taylor <user234683@users.noreply.github.com>2018-09-14 19:32:27 -0700
committerJames Taylor <user234683@users.noreply.github.com>2018-09-14 19:32:27 -0700
commit4212164e91ba2f49583cf44ad623a29b36db8f77 (patch)
tree47aefe3c0162f03e0c823b43873356f69c1cd636 /python/gevent/_event.pxd
parent6ca20ff7010f2bafc7fefcb8cad982be27a8aeae (diff)
downloadyt-local-4212164e91ba2f49583cf44ad623a29b36db8f77.tar.lz
yt-local-4212164e91ba2f49583cf44ad623a29b36db8f77.tar.xz
yt-local-4212164e91ba2f49583cf44ad623a29b36db8f77.zip
Windows: Use 32-bit distribution of python
Diffstat (limited to 'python/gevent/_event.pxd')
-rw-r--r--python/gevent/_event.pxd77
1 files changed, 77 insertions, 0 deletions
diff --git a/python/gevent/_event.pxd b/python/gevent/_event.pxd
new file mode 100644
index 0000000..e92e05e
--- /dev/null
+++ b/python/gevent/_event.pxd
@@ -0,0 +1,77 @@
+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)