Changes between Version 15 and Version 16 of Commentary/Rts/Storage/HeapObjects


Ignore:
Timestamp:
Jun 12, 2011 8:13:26 PM (3 years ago)
Author:
ezyang
Comment:

stack chunks

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Rts/Storage/HeapObjects

    v15 v16  
    398398TSOs are ordinary objects that live in the heap, so we can use the existing allocation and garbage collection machinery to manage them.  This gives us one important benefit: the garbage collector can detect when a blocked thread is unreachable, and hence can never become runnable again.  When this happens, we can notify the thread by sending it the {{{BlockedIndefinitely}}} exception. 
    399399 
    400 GHC keeps stacks contiguous, there are no "stack chunk" objects.  This is simpler, but means that when growing a stack we have to copy the old contents to a larger area (see {{{threadStackOverflow()}}} in [[GhcFile(rts/Schedule.c)]]). 
     400GHC keeps stacks contiguous, there are no "stack chunk" objects.  This is simpler, but means that when growing a stack we have to copy the old contents to a larger area (see {{{threadStackOverflow()}}} in [[GhcFile(rts/Schedule.c)]]). (EZY: I'm pretty sure this is not the case anymore, see http://hackage.haskell.org/trac/ghc/blog/stack-chunks) 
    401401 
    402402The TSO structure contains several fields.  For full details see [[GhcFile(includes/rts/storage/TSO.h)]].  Some of the more important fields are: