[project @ 2002-09-06 09:56:12 by simonmar]
Selector Thunk Fix, take II. The previous version didn't deal well with selector thunks which point to more selector thunks, and on closer inspection the method was flawed. Now I've introduced a function StgClosure *eval_selector_thunk( int field, StgClosure * ) which evaluates a selector thunk returning its value, in from-space, if possible. It blackholes the thunk during evaluation. It might recursively evaluate more selector thunks, but it does this in a bounded way and updates the thunks with indirections (NOT forwarding pointers) after evaluation. This cleans things up somewhat, and I believe it deals properly with both types of selector-thunk loops that arise. MERGE TO STABLE
Showing
Please register or sign in to comment