aboutsummaryrefslogtreecommitdiffstats
path: root/python/gevent/_local.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/_local.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/_local.pxd')
-rw-r--r--python/gevent/_local.pxd113
1 files changed, 113 insertions, 0 deletions
diff --git a/python/gevent/_local.pxd b/python/gevent/_local.pxd
new file mode 100644
index 0000000..331ce28
--- /dev/null
+++ b/python/gevent/_local.pxd
@@ -0,0 +1,113 @@
+# cython: auto_pickle=False
+
+cimport cython
+from gevent._greenlet cimport Greenlet
+
+cdef bint _PYPY
+cdef ref
+cdef copy
+
+cdef object _marker
+cdef str key_prefix
+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()
+
+@cython.final
+@cython.internal
+cdef class _wrefdict(dict):
+ cdef object __weakref__
+
+@cython.final
+@cython.internal
+cdef class _greenlet_deleted:
+ cdef object idt
+ cdef object wrdicts
+
+
+@cython.final
+@cython.internal
+cdef class _local_deleted:
+ cdef str key
+ cdef object wrthread
+ cdef _greenlet_deleted greenlet_deleted
+
+@cython.final
+@cython.internal
+cdef class _localimpl:
+ cdef str key
+ cdef dict dicts
+ cdef tuple localargs
+ cdef dict localkwargs
+ cdef tuple localtypeid
+ cdef object __weakref__
+
+
+@cython.final
+@cython.internal
+cdef class _localimpl_dict_entry:
+ cdef object wrgreenlet
+ cdef dict localdict
+
+@cython.locals(localdict=dict, key=str,
+ greenlet_deleted=_greenlet_deleted,
+ local_deleted=_local_deleted)
+cdef dict _localimpl_create_dict(_localimpl self,
+ greenlet greenlet,
+ object idt)
+
+cdef set _local_attrs
+
+cdef class local:
+ cdef _localimpl _local__impl
+ cdef set _local_type_get_descriptors
+ cdef set _local_type_set_or_del_descriptors
+ cdef set _local_type_del_descriptors
+ cdef set _local_type_set_descriptors
+ cdef set _local_type_vars
+ cdef type _local_type
+
+ @cython.locals(entry=_localimpl_dict_entry,
+ dct=dict, duplicate=dict,
+ instance=local)
+ cpdef local __copy__(local self)
+
+
+@cython.locals(impl=_localimpl,dct=dict,
+ dct=dict, entry=_localimpl_dict_entry)
+cdef inline dict _local_get_dict(local self)
+
+@cython.locals(entry=_localimpl_dict_entry)
+cdef _local__copy_dict_from(local self, _localimpl impl, dict duplicate)
+
+@cython.locals(mro=list, gets=set, dels=set, set_or_del=set,
+ type_self=type, type_attr=type,
+ sets=set)
+cdef tuple _local_find_descriptors(local self)
+
+@cython.locals(result=list, local_impl=_localimpl,
+ entry=_localimpl_dict_entry, k=str,
+ greenlet_dict=dict)
+cpdef all_local_dicts_for_greenlet(greenlet greenlet)