diff options
| author | Richard Kistruck | 2009-08-20 17:44:16 +0100 |
|---|---|---|
| committer | Richard Kistruck | 2009-08-20 17:44:16 +0100 |
| commit | bf80a3a11def6ba68d8f248b389ba84e4e32ced3 (patch) | |
| tree | 3c38bcbc23f517245cecee1b33ffd773def51ddd /mps/code/trace.c | |
| parent | 1c3940b99a3cb7be36324c0c0d9915670171c731 (diff) | |
| download | emacs-bf80a3a11def6ba68d8f248b389ba84e4e32ced3.tar.gz emacs-bf80a3a11def6ba68d8f248b389ba84e4e32ced3.zip | |
Mps br/padding: new pooltraceendmethod: do end-of-trace work
Tracer calls PoolTraceEnd() when the trace is TraceFINISHED.
AbstractPoolClass uses PoolTrivTraceEnd -- a NOOP. [mpm.h, mpmst.h, mpmtypes.h, pool.c, poolabs.c]
AMC overrides with AMCTraceEnd, to emit diagnostic on how well the trace went! [poolamc.c]
Copied from Perforce
Change: 168478
ServerID: perforce.ravenbrook.com
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); |