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/pool.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/pool.c')
| -rw-r--r-- | mps/code/pool.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mps/code/pool.c b/mps/code/pool.c index 05045b3f309..e92106128c3 100644 --- a/mps/code/pool.c +++ b/mps/code/pool.c | |||
| @@ -461,6 +461,23 @@ void PoolReclaim(Pool pool, Trace trace, Seg seg) | |||
| 461 | } | 461 | } |
| 462 | 462 | ||
| 463 | 463 | ||
| 464 | /* PoolTraceEnd -- do end-of-trace work | ||
| 465 | * | ||
| 466 | * This method is for a pool class to do final end-of-trace work, | ||
| 467 | * after all reclaiming is complete. For example, emitting | ||
| 468 | * diagnostics about what happened during the trace. | ||
| 469 | */ | ||
| 470 | |||
| 471 | void PoolTraceEnd(Pool pool, Trace trace) | ||
| 472 | { | ||
| 473 | AVERT(Pool, pool); | ||
| 474 | AVERT(Trace, trace); | ||
| 475 | AVER(pool->arena == trace->arena); | ||
| 476 | |||
| 477 | (*pool->class->traceEnd)(pool, trace); | ||
| 478 | } | ||
| 479 | |||
| 480 | |||
| 464 | /* PoolWalk -- walk objects in this segment */ | 481 | /* PoolWalk -- walk objects in this segment */ |
| 465 | 482 | ||
| 466 | void PoolWalk(Pool pool, Seg seg, FormattedObjectsStepMethod f, | 483 | void PoolWalk(Pool pool, Seg seg, FormattedObjectsStepMethod f, |