ArenaPoll will still call TracePoll if clamped...
but TracePoll won't start a new trace if clamped
ArenaStep won't start an opportunistic full collect if clamped
ArenaStep won't advance pollThreshold, ever
traceFlip asserts that clamped is FALSE.
(see http://info.ravenbrook.com/mail/2010/02/23/13-19-24/0.txt)
---
But no, clamped is more complex than that.
- Certain mps.h calls affect it.
- Certain MPS tests use it for more control and reproducibility.
- MPS itself uses it, as part of starting a full collect, for which it must first run any current trace to completion without starting any new ones.
In particular, this set of changes asserts:
MPS ASSERTION FAILURE: ArenaGlobals(arena)->clamped == FALSE
trace.c
534
because mps_arena_collect() tries to start a full collect while clamped.
---
So this changelist is for historical interest only, and will be backed out.
Copied from Perforce
Change: 169853
ServerID: perforce.ravenbrook.com
Changes:
- separate ArenaPoll and ArenaStep code paths;
- simplify ArenaPoll;
- loop calling TracePoll to catch-up;
zcoll: 100MB is a more sensible arena size than 0.5 MB
Warning: barely "experimental" code quality, omitting the following necessities:
- consideration of interactions with ArenaStep,
- re-engineering of ArenaPoll and friends.
Copied from Perforce
Change: 169814
ServerID: perforce.ravenbrook.com
poolamc.c tidy up:
neater implementation of obj1pip (amcReclaimNailed)
neater implementation of amcResetTraceIdStats -- no need for a function any more
delete lots of obsolete temporary diagnostic (superseded by AMCTraceEnd_pageret)
a few more avers (especially on buffer empty)
also revert temporary diagnostic changes in arena.c, config.h, diag.c, global.c
diag.c: fix diag-buffer at 100 screenfuls (200000 chars).
zcoll.c: reinstate Make 50000 with occasional big objs.
Copied from Perforce
Change: 168688
ServerID: perforce.ravenbrook.com
re-create them immediately after a trace sends its last message.
Store them, one per TraceId, in ArenaStruct. Cope correctly if they
cannot be created (ControlAlloc fails). Destroy them correctly on
mps_arena_destroy. See job001989 and design/message-gc#lifecycle
(not yet written).
Copied from Perforce
Change: 166918
ServerID: perforce.ravenbrook.com
- new mps_message_type_gc_start() explains what triggered a collection;
- design/message: add guide.
Copied from Perforce
Change: 161204
ServerID: perforce.ravenbrook.com
Making some new files consistent with changes from that branch.
Deleting some new Global Graphics confidential files.
Copied from Perforce
Change: 30256
ServerID: perforce.ravenbrook.com
This change will be integrated but ignored (-ay) to the gg-epcore/union sources, so that they retain HopeNames.
Copied from Perforce
Change: 24911
ServerID: perforce.ravenbrook.com
This was achieved by partially undoing changelist 24817, including an accidental corruption of eventgen.pl.
Copied from Perforce
Change: 24877
ServerID: perforce.ravenbrook.com