Ticket #8035: fix-8035.patch

File fix-8035.patch, 859 bytes (added by errge, 10 months 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;