Ticket #8035: fix-8035.patch

File fix-8035.patch, 859 bytes (added by errge, 2 years ago)

proposed fix

  • rts/Schedule.c

    diff --git a/rts/Schedule.c b/rts/Schedule.c
    index a024926..88bfd8c 100644
    a b raiseExceptionHelper (StgRegTable *reg, StgTSO *tso, StgClosure *exception) 
    27222722            tso->stackobj->sp = p;
    27232723            return STOP_FRAME;
    27242724
    2725         case CATCH_RETRY_FRAME:
     2725        case CATCH_RETRY_FRAME: {
     2726            StgTRecHeader *trec = tso -> trec;
     2727            StgTRecHeader *outer = trec -> enclosing_trec;
     2728            debugTrace(DEBUG_stm,
     2729                       "found CATCH_RETRY_FRAME at %p during raise", p);
     2730            debugTrace(DEBUG_stm, "trec=%p outer=%p", trec, outer);
     2731            stmAbortTransaction(cap, trec);
     2732            stmFreeAbortedTRec(cap, trec);
     2733            tso -> trec = outer;
     2734            p = next;
     2735            continue;
     2736        }
     2737
    27262738        default:
    27272739            p = next;
    27282740            continue;