aboutsummaryrefslogtreecommitdiffstats
path: root/python/gevent/__imap.pxd
diff options
context:
space:
mode:
Diffstat (limited to 'python/gevent/__imap.pxd')
-rw-r--r--python/gevent/__imap.pxd45
1 files changed, 45 insertions, 0 deletions
diff --git a/python/gevent/__imap.pxd b/python/gevent/__imap.pxd
new file mode 100644
index 0000000..5e3e930
--- /dev/null
+++ b/python/gevent/__imap.pxd
@@ -0,0 +1,45 @@
+cimport cython
+from gevent._greenlet cimport Greenlet
+from gevent.__semaphore cimport Semaphore
+from gevent._queue cimport UnboundQueue
+
+@cython.freelist(100)
+@cython.internal
+@cython.final
+cdef class Failure:
+ cdef readonly exc
+ cdef raise_exception
+
+cdef inline _raise_exc(Failure failure)
+
+cdef class IMapUnordered(Greenlet):
+ cdef bint _zipped
+ cdef func
+ cdef iterable
+ cdef spawn
+ cdef Semaphore _result_semaphore
+ cdef int _outstanding_tasks
+ cdef int _max_index
+
+ cdef readonly UnboundQueue queue
+ cdef readonly bint finished
+
+ cdef _inext(self)
+ cdef _ispawn(self, func, item, int item_index)
+
+ # Passed to greenlet.link
+ cpdef _on_result(self, greenlet)
+ # Called directly
+ cdef _on_finish(self, exception)
+
+ cdef _iqueue_value_for_success(self, greenlet)
+ cdef _iqueue_value_for_failure(self, greenlet)
+ cdef _iqueue_value_for_self_finished(self)
+ cdef _iqueue_value_for_self_failure(self, exception)
+
+cdef class IMap(IMapUnordered):
+ cdef int index
+ cdef dict _results
+
+ @cython.locals(index=int)
+ cdef _inext(self)