writeImageFile() without snapshot()?

Avi Bryant avi.bryant at gmail.com
Fri Oct 7 19:49:29 UTC 2005


On Oct 7, 2005, at 12:08 PM, Andreas Raab wrote:

> You can *not* get away without a GC, simply because the GC state  
> isn't preserved across snapshots. We actually had some obscure  
> crashes related to this problem in the past (anyone remember the  
> crashes caused by the root bit being set on the active context  
> after a snapshot?)
>
> In other words, the full GC is required to save the image in a well- 
> known "right-after-full-gc-state". One would (at least) have to  
> save sufficient information for the garbage collector to make this  
> work. Likely other fixes too, since a full garbage collect cleans  
> up many, many things that we usually don't even think about (cached  
> contexts for example).

Ok, thanks, good to know.

Now, it should still work to do what Tom was suggesting, right?  Do  
the fullGC in the parent process, then immediately fork and snapshot   
(without doing a second GC in the child).  Does the order of, eg,  
#storeContextRegisters: and #fullGC inside #snapshot: matter?

Avi



More information about the Squeak-dev mailing list