Exemple #1
0
 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)
Exemple #2
0
 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())
Exemple #3
0
 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)