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
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
def post_install(module): makeStaticMethod(module, 'clonable', 'getcurrent') space = module.space AppClonableCoroutine._get_state(space).post_install()