Generated by Cython 3.0.0a11

Yellow lines hint at Python interaction.
Click on a line that starts with a "`+`" to see the C code that Cython generated for it.

Raw output: _hub_local.c

    +001: # -*- coding: utf-8 -*-

    __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

     002: # copyright 2018 gevent. See LICENSE

     003: """

     004: Maintains the thread local hub.

     005:

     006: """

     007: from __future__ import absolute_import

     008: from __future__ import division

     009: from __future__ import print_function

     010:

     011:

    +012: from gevent._compat import thread_mod_name

    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);__Pyx_INCREF(__pyx_n_s_thread_mod_name);__Pyx_GIVEREF(__pyx_n_s_thread_mod_name);PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_thread_mod_name);__pyx_t_3 = __Pyx_Import(__pyx_n_s_gevent__compat, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_thread_mod_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);if (PyDict_SetItem(__pyx_d, __pyx_n_s_thread_mod_name, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error)__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

     013:

    +014: __all__ = [

    __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_INCREF(__pyx_n_s_get_hub);__Pyx_GIVEREF(__pyx_n_s_get_hub);PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_get_hub);__Pyx_INCREF(__pyx_n_s_get_hub_noargs);__Pyx_GIVEREF(__pyx_n_s_get_hub_noargs);PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_get_hub_noargs);__Pyx_INCREF(__pyx_n_s_get_hub_if_exists);__Pyx_GIVEREF(__pyx_n_s_get_hub_if_exists);PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_s_get_hub_if_exists);if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_3) < 0) __PYX_ERR(0, 14, __pyx_L1_error)__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

     015:     'get_hub',

     016:     'get_hub_noargs',

     017:     'get_hub_if_exists',

     018: ]

     019:

     020: # These must be the "real" native thread versions,

     021: # not monkey-patched.

     022: # We are imported early enough (by gevent/__init__) that

     023: # we can rely on not being monkey-patched in any way yet.

    +024: class _Threadlocal(__import__(thread_mod_name)._local):

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_thread_mod_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin___import__, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_local); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);__Pyx_GIVEREF(__pyx_t_3);PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);__pyx_t_3 = 0;__pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);__pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_Threadlocal, __pyx_n_s_Threadlocal, (PyObject *) NULL, __pyx_n_s_gevent__gevent_c_hub_local, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_5);if (__pyx_t_3 != __pyx_t_2) {if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 24, __pyx_L1_error)}__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_Threadlocal, __pyx_t_3, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);if (PyDict_SetItem(__pyx_d, __pyx_n_s_Threadlocal, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

     025:

    +026:     def __init__(self):

    /* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_12_Threadlocal_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_12_Threadlocal_1__init__ = {"__init__", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_12_Threadlocal_1__init__, METH_O, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_12_Threadlocal_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_12_Threadlocal___init__(__pyx_self, ((PyObject *)__pyx_v_self));/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_12_Threadlocal___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("__init__", 0);/* function exit code */__pyx_r = Py_None; __Pyx_INCREF(Py_None);goto __pyx_L0;__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_XDECREF(__pyx_t_2);__Pyx_XDECREF(__pyx_t_3);__Pyx_AddTraceback("gevent._gevent_c_hub_local._Threadlocal.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_tuple__2 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 26, __pyx_L1_error)__Pyx_GOTREF(__pyx_tuple__2);__Pyx_GIVEREF(__pyx_tuple__2);__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_12_Threadlocal_1__init__, 0, __pyx_n_s_Threadlocal___init, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_n_s_init, __pyx_t_2) < 0) __PYX_ERR(0, 26, __pyx_L1_error)__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_init, 26, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 26, __pyx_L1_error)

     027:         # Use a class with an initializer so that we can test

     028:         # for 'is None' instead of catching AttributeError, making

     029:         # the code cleaner and possibly solving some corner cases

     030:         # (like #687)

    +031:         super(_Threadlocal, self).__init__()

    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Threadlocal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_GIVEREF(__pyx_t_2);PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);__Pyx_INCREF(__pyx_v_self);__Pyx_GIVEREF(__pyx_v_self);PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);__pyx_t_2 = 0;__pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_2);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;__pyx_t_2 = NULL;__pyx_t_4 = 0;if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);if (likely(__pyx_t_2)) {PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);__Pyx_INCREF(__pyx_t_2);__Pyx_INCREF(function);__Pyx_DECREF_SET(__pyx_t_3, function);__pyx_t_4 = 1;}}{PyObject *__pyx_callargs[1] = {__pyx_t_2, };__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;}__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    +032:         self.Hub = None

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Hub, Py_None) < 0) __PYX_ERR(0, 32, __pyx_L1_error)

    +033:         self.loop = None

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_loop, Py_None) < 0) __PYX_ERR(0, 33, __pyx_L1_error)

    +034:         self.hub = None

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_hub, Py_None) < 0) __PYX_ERR(0, 34, __pyx_L1_error)

     035:

    +036: _threadlocal = _Threadlocal()

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Threadlocal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;__Pyx_XGOTREF(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal);__Pyx_DECREF_SET(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_t_4);__Pyx_GIVEREF(__pyx_t_4);__pyx_t_4 = 0;

     037:

    +038: Hub = None # Set when gevent.hub is imported

    if (PyDict_SetItem(__pyx_d, __pyx_n_s_Hub, Py_None) < 0) __PYX_ERR(0, 38, __pyx_L1_error)

     039:

    +040: def get_hub_class():

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_1get_hub_class(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static PyObject *__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_class(CYTHON_UNUSED int __pyx_skip_dispatch) {PyObject *__pyx_v_hubtype = NULL;PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_class", 0);/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_class", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XDECREF(__pyx_v_hubtype);__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_1get_hub_class(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/PyDoc_STRVAR(__pyx_doc_6gevent_19_gevent_c_hub_local_get_hub_class, "Return the type of hub to use for the current thread.\n\n    If there's no type of hub for the current thread yet, 'gevent.hub.Hub' is used.\n    ");static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_1get_hub_class = {"get_hub_class", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_1get_hub_class, METH_NOARGS, __pyx_doc_6gevent_19_gevent_c_hub_local_get_hub_class};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_1get_hub_class(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_class (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_get_hub_class(__pyx_self);/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_get_hub_class(CYTHON_UNUSED PyObject *__pyx_self) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_class", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = __pyx_f_6gevent_19_gevent_c_hub_local_get_hub_class(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_class", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_1get_hub_class, 0, __pyx_n_s_get_hub_class, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_hub_class, __pyx_t_4) < 0) __PYX_ERR(0, 40, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_get_hub_class, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 40, __pyx_L1_error)

     041:     """Return the type of hub to use for the current thread.

     042:

     043:     If there's no type of hub for the current thread yet, 'gevent.hub.Hub' is used.

     044:     """

    +045:     hubtype = _threadlocal.Hub

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_Hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_v_hubtype = __pyx_t_1;__pyx_t_1 = 0;

    +046:     if hubtype is None:

    __pyx_t_2 = (__pyx_v_hubtype == Py_None);if (__pyx_t_2) {}

    +047:         hubtype = _threadlocal.Hub = Hub

    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__Pyx_INCREF(__pyx_t_1);__Pyx_DECREF_SET(__pyx_v_hubtype, __pyx_t_1);if (__Pyx_PyObject_SetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_Hub, __pyx_t_1) < 0) __PYX_ERR(0, 47, __pyx_L1_error)__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    +048:     return hubtype

    __Pyx_XDECREF(__pyx_r);__Pyx_INCREF(__pyx_v_hubtype);__pyx_r = __pyx_v_hubtype;goto __pyx_L0;

     049:

    +050: def set_default_hub_class(hubtype):

    /* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_3set_default_hub_class(PyObject *__pyx_self, PyObject *__pyx_v_hubtype); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_3set_default_hub_class = {"set_default_hub_class", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_3set_default_hub_class, METH_O, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_3set_default_hub_class(PyObject *__pyx_self, PyObject *__pyx_v_hubtype) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_default_hub_class (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_2set_default_hub_class(__pyx_self, ((PyObject *)__pyx_v_hubtype));/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_2set_default_hub_class(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_hubtype) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_default_hub_class", 0);/* function exit code */__pyx_r = Py_None; __Pyx_INCREF(Py_None);goto __pyx_L0;__pyx_L1_error:;__Pyx_AddTraceback("gevent._gevent_c_hub_local.set_default_hub_class", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_tuple__5 = PyTuple_Pack(1, __pyx_n_s_hubtype); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 50, __pyx_L1_error)__Pyx_GOTREF(__pyx_tuple__5);__Pyx_GIVEREF(__pyx_tuple__5);__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_3set_default_hub_class, 0, __pyx_n_s_set_default_hub_class, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 50, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_default_hub_class, __pyx_t_4) < 0) __PYX_ERR(0, 50, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_set_default_hub_class, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 50, __pyx_L1_error)

     051:     global Hub

    +052:     Hub = hubtype

    if (PyDict_SetItem(__pyx_d, __pyx_n_s_Hub, __pyx_v_hubtype) < 0) __PYX_ERR(0, 52, __pyx_L1_error)

     053:

    +054: def get_hub(*args, **kwargs): # pylint:disable=unused-argument

    /* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_5get_hub(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/PyDoc_STRVAR(__pyx_doc_6gevent_19_gevent_c_hub_local_4get_hub, "\n    Return the hub for the current thread.\n\n    If a hub does not exist in the current thread, a new one is\n    created of the type returned by :func:`get_hub_class`.\n\n    .. deprecated:: 1.3b1\n       The ``*args`` and ``**kwargs`` arguments are deprecated. They were\n       only used when the hub was created, and so were non-deterministic---to be\n       sure they were used, *all* callers had to pass them, or they were order-dependent.\n       Use ``set_hub`` instead.\n\n    .. versionchanged:: 1.5a3\n       The *args* and *kwargs* arguments are now completely ignored.\n    ");static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_5get_hub = {"get_hub", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6gevent_19_gevent_c_hub_local_5get_hub, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6gevent_19_gevent_c_hub_local_4get_hub};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_5get_hub(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {CYTHON_UNUSED PyObject *__pyx_v_args = 0;CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub (wrapper)", 0);if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_hub", 1))) return NULL;__Pyx_INCREF(__pyx_args);__pyx_v_args = __pyx_args;__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_4get_hub(__pyx_self, __pyx_v_args, __pyx_v_kwargs);/* function exit code */__Pyx_DECREF(__pyx_v_args);__Pyx_XDECREF(__pyx_v_kwargs);__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_4get_hub(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub", 0);/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_tuple__7 = PyTuple_Pack(2, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 54, __pyx_L1_error)__Pyx_GOTREF(__pyx_tuple__7);__Pyx_GIVEREF(__pyx_tuple__7);__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_5get_hub, 0, __pyx_n_s_get_hub, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 54, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_hub, __pyx_t_4) < 0) __PYX_ERR(0, 54, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_get_hub, 54, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 54, __pyx_L1_error)

     055:     """

     056:     Return the hub for the current thread.

     057:

     058:     If a hub does not exist in the current thread, a new one is

     059:     created of the type returned by :func:`get_hub_class`.

     060:

     061:     .. deprecated:: 1.3b1

     062:        The ``*args`` and ``**kwargs`` arguments are deprecated. They were

     063:        only used when the hub was created, and so were non-deterministic---to be

     064:        sure they were used, *all* callers had to pass them, or they were order-dependent.

     065:        Use ``set_hub`` instead.

     066:

     067:     .. versionchanged:: 1.5a3

     068:        The *args* and *kwargs* arguments are now completely ignored.

     069:     """

     070:

    +071:     return get_hub_noargs()

    __Pyx_XDECREF(__pyx_r);__pyx_t_1 = ((PyObject *)__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_noargs(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;

     072:

    +073: def get_hub_noargs():

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_7get_hub_noargs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_noargs(CYTHON_UNUSED int __pyx_skip_dispatch) {PyObject *__pyx_v_hub = NULL;PyObject *__pyx_v_hubtype = NULL;struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_noargs", 0);/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_XDECREF(__pyx_t_3);__Pyx_XDECREF(__pyx_t_4);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_noargs", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XDECREF(__pyx_v_hub);__Pyx_XDECREF(__pyx_v_hubtype);__Pyx_XGIVEREF((PyObject *)__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_7get_hub_noargs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_7get_hub_noargs = {"get_hub_noargs", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_7get_hub_noargs, METH_NOARGS, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_7get_hub_noargs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_noargs (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_6get_hub_noargs(__pyx_self);/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_6get_hub_noargs(CYTHON_UNUSED PyObject *__pyx_self) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_noargs", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = ((PyObject *)__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_noargs(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_noargs", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_7get_hub_noargs, 0, __pyx_n_s_get_hub_noargs, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_hub_noargs, __pyx_t_4) < 0) __PYX_ERR(0, 73, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_get_hub_noargs, 73, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 73, __pyx_L1_error)

     074:     # Just like get_hub, but cheaper to call because it

     075:     # takes no arguments or kwargs. See also a copy in

     076:     # gevent/greenlet.py

    +077:     hub = _threadlocal.hub

    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_v_hub = __pyx_t_1;__pyx_t_1 = 0;

    +078:     if hub is None:

    __pyx_t_2 = (__pyx_v_hub == Py_None);if (__pyx_t_2) {}

    +079:         hubtype = get_hub_class()

    __pyx_t_1 = __pyx_f_6gevent_19_gevent_c_hub_local_get_hub_class(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_v_hubtype = __pyx_t_1;__pyx_t_1 = 0;

    +080:         hub = _threadlocal.hub = hubtype()

    __Pyx_INCREF(__pyx_v_hubtype);__pyx_t_3 = __pyx_v_hubtype; __pyx_t_4 = NULL;__pyx_t_5 = 0;if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);if (likely(__pyx_t_4)) {PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);__Pyx_INCREF(__pyx_t_4);__Pyx_INCREF(function);__Pyx_DECREF_SET(__pyx_t_3, function);__pyx_t_5 = 1;}}{PyObject *__pyx_callargs[1] = {__pyx_t_4, };__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;}__Pyx_INCREF(__pyx_t_1);__Pyx_DECREF_SET(__pyx_v_hub, __pyx_t_1);if (__Pyx_PyObject_SetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_hub, __pyx_t_1) < 0) __PYX_ERR(0, 80, __pyx_L1_error)__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    +081:     return hub

    __Pyx_XDECREF((PyObject *)__pyx_r);if (!(likely(((__pyx_v_hub) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_hub, __pyx_ptype_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop))))) __PYX_ERR(0, 81, __pyx_L1_error)__Pyx_INCREF(__pyx_v_hub);__pyx_r = ((struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *)__pyx_v_hub);goto __pyx_L0;

     082:

    +083: def get_hub_if_exists():

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_9get_hub_if_exists(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_if_exists(CYTHON_UNUSED int __pyx_skip_dispatch) {struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_if_exists", 0);/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_if_exists", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XGIVEREF((PyObject *)__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_9get_hub_if_exists(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/PyDoc_STRVAR(__pyx_doc_6gevent_19_gevent_c_hub_local_8get_hub_if_exists, "Return the hub for the current thread.\n\n    Return ``None`` if no hub has been created yet.\n    ");static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_9get_hub_if_exists = {"get_hub_if_exists", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_9get_hub_if_exists, METH_NOARGS, __pyx_doc_6gevent_19_gevent_c_hub_local_8get_hub_if_exists};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_9get_hub_if_exists(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_if_exists (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_8get_hub_if_exists(__pyx_self);/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_8get_hub_if_exists(CYTHON_UNUSED PyObject *__pyx_self) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_hub_if_exists", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = ((PyObject *)__pyx_f_6gevent_19_gevent_c_hub_local_get_hub_if_exists(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_hub_if_exists", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_9get_hub_if_exists, 0, __pyx_n_s_get_hub_if_exists, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 83, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_hub_if_exists, __pyx_t_4) < 0) __PYX_ERR(0, 83, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_get_hub_if_exists, 83, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 83, __pyx_L1_error)

     084:     """Return the hub for the current thread.

     085:

     086:     Return ``None`` if no hub has been created yet.

     087:     """

    +088:     return _threadlocal.hub

    __Pyx_XDECREF((PyObject *)__pyx_r);__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop))))) __PYX_ERR(0, 88, __pyx_L1_error)__pyx_r = ((struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *)__pyx_t_1);__pyx_t_1 = 0;goto __pyx_L0;

     089:

     090:

    +091: def set_hub(hub):

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_11set_hub(PyObject *__pyx_self, PyObject *__pyx_v_hub); /*proto*/static PyObject *__pyx_f_6gevent_19_gevent_c_hub_local_set_hub(struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_v_hub, CYTHON_UNUSED int __pyx_skip_dispatch) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_hub", 0);/* function exit code */__pyx_r = Py_None; __Pyx_INCREF(Py_None);goto __pyx_L0;__pyx_L1_error:;__Pyx_AddTraceback("gevent._gevent_c_hub_local.set_hub", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_11set_hub(PyObject *__pyx_self, PyObject *__pyx_v_hub); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_11set_hub = {"set_hub", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_11set_hub, METH_O, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_11set_hub(PyObject *__pyx_self, PyObject *__pyx_v_hub) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_hub (wrapper)", 0);if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_hub), __pyx_ptype_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop, 1, "hub", 0))) __PYX_ERR(0, 91, __pyx_L1_error)__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_10set_hub(__pyx_self, ((struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *)__pyx_v_hub));int __pyx_lineno = 0;const char *__pyx_filename = NULL;int __pyx_clineno = 0;/* function exit code */goto __pyx_L0;__pyx_L1_error:;__pyx_r = NULL;__pyx_L0:;__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_10set_hub(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6gevent_29_gevent_c_greenlet_primitives_SwitchOutGreenletWithLoop *__pyx_v_hub) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_hub", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = __pyx_f_6gevent_19_gevent_c_hub_local_set_hub(__pyx_v_hub, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.set_hub", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_tuple__11 = PyTuple_Pack(1, __pyx_n_s_hub); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 91, __pyx_L1_error)__Pyx_GOTREF(__pyx_tuple__11);__Pyx_GIVEREF(__pyx_tuple__11);__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_11set_hub, 0, __pyx_n_s_set_hub, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 91, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_hub, __pyx_t_4) < 0) __PYX_ERR(0, 91, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_set_hub, 91, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 91, __pyx_L1_error)

    +092:     _threadlocal.hub = hub

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_hub, ((PyObject *)__pyx_v_hub)) < 0) __PYX_ERR(0, 92, __pyx_L1_error)

     093:

    +094: def get_loop():

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_13get_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static PyObject *__pyx_f_6gevent_19_gevent_c_hub_local_get_loop(CYTHON_UNUSED int __pyx_skip_dispatch) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_loop", 0);/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_13get_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_13get_loop = {"get_loop", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_13get_loop, METH_NOARGS, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_13get_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_loop (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_12get_loop(__pyx_self);/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_12get_loop(CYTHON_UNUSED PyObject *__pyx_self) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("get_loop", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = __pyx_f_6gevent_19_gevent_c_hub_local_get_loop(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.get_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_13get_loop, 0, __pyx_n_s_get_loop, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 94, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_loop, __pyx_t_4) < 0) __PYX_ERR(0, 94, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_gevent__hub_local_py, __pyx_n_s_get_loop, 94, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 94, __pyx_L1_error)

    +095:     return _threadlocal.loop

    __Pyx_XDECREF(__pyx_r);__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_loop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;

     096:

    +097: def set_loop(loop):

    static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_15set_loop(PyObject *__pyx_self, PyObject *__pyx_v_loop); /*proto*/static PyObject *__pyx_f_6gevent_19_gevent_c_hub_local_set_loop(PyObject *__pyx_v_loop, CYTHON_UNUSED int __pyx_skip_dispatch) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_loop", 0);/* function exit code */__pyx_r = Py_None; __Pyx_INCREF(Py_None);goto __pyx_L0;__pyx_L1_error:;__Pyx_AddTraceback("gevent._gevent_c_hub_local.set_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = 0;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}/* Python wrapper */static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_15set_loop(PyObject *__pyx_self, PyObject *__pyx_v_loop); /*proto*/static PyMethodDef __pyx_mdef_6gevent_19_gevent_c_hub_local_15set_loop = {"set_loop", (PyCFunction)__pyx_pw_6gevent_19_gevent_c_hub_local_15set_loop, METH_O, 0};static PyObject *__pyx_pw_6gevent_19_gevent_c_hub_local_15set_loop(PyObject *__pyx_self, PyObject *__pyx_v_loop) {CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);PyObject *__pyx_r = 0;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_loop (wrapper)", 0);__pyx_r = __pyx_pf_6gevent_19_gevent_c_hub_local_14set_loop(__pyx_self, ((PyObject *)__pyx_v_loop));/* function exit code */__Pyx_RefNannyFinishContext();return __pyx_r;}static PyObject *__pyx_pf_6gevent_19_gevent_c_hub_local_14set_loop(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_loop) {PyObject *__pyx_r = NULL;__Pyx_RefNannyDeclarations__Pyx_RefNannySetupContext("set_loop", 0);__Pyx_XDECREF(__pyx_r);__pyx_t_1 = __pyx_f_6gevent_19_gevent_c_hub_local_set_loop(__pyx_v_loop, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_1);__pyx_r = __pyx_t_1;__pyx_t_1 = 0;goto __pyx_L0;/* function exit code */__pyx_L1_error:;__Pyx_XDECREF(__pyx_t_1);__Pyx_AddTraceback("gevent._gevent_c_hub_local.set_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);__pyx_r = NULL;__pyx_L0:;__Pyx_XGIVEREF(__pyx_r);__Pyx_RefNannyFinishContext();return __pyx_r;}__pyx_tuple__14 = PyTuple_Pack(1, __pyx_n_s_loop); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 97, __pyx_L1_error)__Pyx_GOTREF(__pyx_tuple__14);__Pyx_GIVEREF(__pyx_tuple__14);__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6gevent_19_gevent_c_hub_local_15set_loop, 0, __pyx_n_s_set_loop, NULL, __pyx_n_s_gevent__gevent_c_hub_local, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 97, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_loop, __pyx_t_4) < 0) __PYX_ERR(0, 97, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    +098:     _threadlocal.loop = loop

    if (__Pyx_PyObject_SetAttrStr(__pyx_v_6gevent_19_gevent_c_hub_local__threadlocal, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 98, __pyx_L1_error)

     099:

    +100: from gevent._util import import_c_accel

    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 100, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);__Pyx_INCREF(__pyx_n_s_import_c_accel);__Pyx_GIVEREF(__pyx_n_s_import_c_accel);PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_import_c_accel);__pyx_t_3 = __Pyx_Import(__pyx_n_s_gevent__util, __pyx_t_4, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__pyx_t_4 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_import_c_accel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 100, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_c_accel, __pyx_t_4) < 0) __PYX_ERR(0, 100, __pyx_L1_error)__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    +101: import_c_accel(globals(), 'gevent.__hub_local')

    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_c_accel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_3);__pyx_t_4 = __Pyx_Globals(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_5);__Pyx_GIVEREF(__pyx_t_4);PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);__Pyx_INCREF(__pyx_kp_s_gevent___hub_local);__Pyx_GIVEREF(__pyx_kp_s_gevent___hub_local);PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_s_gevent___hub_local);__pyx_t_4 = 0;__pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)__Pyx_GOTREF(__pyx_t_4);__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;