def handle_async_forcing(self, deadframe): from rpython.jit.metainterp.resume import force_from_resumedata metainterp_sd = self.metainterp_sd vinfo = self.jitdriver_sd.virtualizable_info ginfo = self.jitdriver_sd.greenfield_info all_virtuals = force_from_resumedata(metainterp_sd, self, deadframe, vinfo, ginfo) # The virtualizable data was stored on the real virtualizable above. # Handle all_virtuals: keep them for later blackholing from the # future failure of the GUARD_NOT_FORCED obj = AllVirtuals(all_virtuals) hidden_all_virtuals = obj.hide(metainterp_sd.cpu) metainterp_sd.cpu.set_savedata_ref(deadframe, hidden_all_virtuals)
def handle_async_forcing(self, deadframe): from rpython.jit.metainterp.resume import force_from_resumedata metainterp_sd = self.metainterp_sd vinfo = self.jitdriver_sd.virtualizable_info ginfo = self.jitdriver_sd.greenfield_info # there is some chance that this is already forced. In this case # the virtualizable would have a token = NULL all_virtuals = force_from_resumedata(metainterp_sd, self, deadframe, vinfo, ginfo) # The virtualizable data was stored on the real virtualizable above. # Handle all_virtuals: keep them for later blackholing from the # future failure of the GUARD_NOT_FORCED obj = AllVirtuals(all_virtuals) metainterp_sd.cpu.set_savedata_ref(deadframe, obj.hide())
def handle_async_forcing(self, deadframe): from rpython.jit.metainterp.resume import (force_from_resumedata, AlreadyForced) metainterp_sd = self.metainterp_sd vinfo = self.jitdriver_sd.virtualizable_info ginfo = self.jitdriver_sd.greenfield_info # there is some chance that this is already forced. In this case # the virtualizable would have a token = NULL try: all_virtuals = force_from_resumedata(metainterp_sd, self, deadframe, vinfo, ginfo) except AlreadyForced: return # The virtualizable data was stored on the real virtualizable above. # Handle all_virtuals: keep them for later blackholing from the # future failure of the GUARD_NOT_FORCED obj = AllVirtuals(all_virtuals) hidden_all_virtuals = obj.hide(metainterp_sd.cpu) metainterp_sd.cpu.set_savedata_ref(deadframe, hidden_all_virtuals)