diff options
Diffstat (limited to 'mps/code/trace.c')
| -rw-r--r-- | mps/code/trace.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mps/code/trace.c b/mps/code/trace.c index 1082eaefe78..ff13b6180a9 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c | |||
| @@ -770,6 +770,7 @@ static void traceReclaim(Trace trace) | |||
| 770 | { | 770 | { |
| 771 | Arena arena; | 771 | Arena arena; |
| 772 | Seg seg; | 772 | Seg seg; |
| 773 | Ring node, nextNode; | ||
| 773 | 774 | ||
| 774 | AVER(trace->state == TraceRECLAIM); | 775 | AVER(trace->state == TraceRECLAIM); |
| 775 | 776 | ||
| @@ -805,6 +806,13 @@ static void traceReclaim(Trace trace) | |||
| 805 | } | 806 | } |
| 806 | 807 | ||
| 807 | trace->state = TraceFINISHED; | 808 | trace->state = TraceFINISHED; |
| 809 | |||
| 810 | /* Call each pool's TraceEnd method -- do end-of-trace work */ | ||
| 811 | RING_FOR(node, &ArenaGlobals(arena)->poolRing, nextNode) { | ||
| 812 | Pool pool = RING_ELT(Pool, arenaRing, node); | ||
| 813 | PoolTraceEnd(pool, trace); | ||
| 814 | } | ||
| 815 | |||
| 808 | TracePostMessage(trace); /* trace end */ | 816 | TracePostMessage(trace); /* trace end */ |
| 809 | /* Immediately pre-allocate messages for next time; failure is okay */ | 817 | /* Immediately pre-allocate messages for next time; failure is okay */ |
| 810 | (void)TraceIdMessagesCreate(arena, trace->ti); | 818 | (void)TraceIdMessagesCreate(arena, trace->ti); |