コード例 #1
0
ファイル: interp_greenlet.py プロジェクト: xx312022850/pypy
def post_install(module):
    makeStaticMethod(module, 'greenlet', 'getcurrent')
    space = module.space
    state = AppGreenlet._get_state(space)
    state.post_install()
    w_greenlet = get(space, 'greenlet')
    # HACK HACK HACK
    # make the typeobject mutable for a while
    from pypy.objspace.std.typeobject import _HEAPTYPE, W_TypeObject
    assert isinstance(w_greenlet, W_TypeObject)
    old_flags = w_greenlet.__flags__
    w_greenlet.__flags__ |= _HEAPTYPE
    space.appexec([w_greenlet, state.w_GreenletExit, state.w_GreenletError],
                  """
    (greenlet, exit, error):
        greenlet.GreenletExit = exit
        greenlet.error = error
    """)
    w_greenlet.__flags__ = old_flags
コード例 #2
0
ファイル: interp_greenlet.py プロジェクト: enyst/plexnet
def post_install(module):
    makeStaticMethod(module, 'greenlet', 'getcurrent')
    space = module.space
    state = AppGreenlet._get_state(space)
    state.post_install()
    w_greenlet = get(space, 'greenlet')
    # HACK HACK HACK
    # make the typeobject mutable for a while
    from pypy.objspace.std.typeobject import _HEAPTYPE, W_TypeObject
    assert isinstance(w_greenlet, W_TypeObject)
    old_flags = w_greenlet.__flags__
    w_greenlet.__flags__ |= _HEAPTYPE
    space.appexec([w_greenlet,
                   state.w_GreenletExit,
                   state.w_GreenletError], """
    (greenlet, exit, error):
        greenlet.GreenletExit = exit
        greenlet.error = error
    """)
    w_greenlet.__flags__ = old_flags
コード例 #3
0
ファイル: interp_greenlet.py プロジェクト: gorakhargosh/pypy
def post_install(module):
    "NOT_RPYTHON"
    makeStaticMethod(module, 'greenlet', 'getcurrent')
    space = module.space
    state = AppGreenlet._get_state(space)
    state.post_install()
    w_greenlet = get(space, 'greenlet')
    # HACK HACK HACK
    # make the typeobject mutable for a while
    from pypy.objspace.std.typeobject import W_TypeObject
    assert isinstance(w_greenlet, W_TypeObject)
    old_flag = w_greenlet.flag_heaptype
    w_greenlet.flag_heaptype = True
    space.appexec([w_greenlet,
                   state.w_GreenletExit,
                   state.w_GreenletError], """
    (greenlet, exit, error):
        greenlet.GreenletExit = exit
        greenlet.error = error
    """)
    w_greenlet.flag_heaptype = old_flag
コード例 #4
0
ファイル: interp_clonable.py プロジェクト: alkorzt/pypy
def post_install(module):
    makeStaticMethod(module, 'clonable', 'getcurrent')
    space = module.space
    AppClonableCoroutine._get_state(space).post_install()
コード例 #5
0
ファイル: interp_clonable.py プロジェクト: xx312022850/pypy
def post_install(module):
    makeStaticMethod(module, 'clonable', 'getcurrent')
    space = module.space
    AppClonableCoroutine._get_state(space).post_install()