From: Vladimir Tzankov <vtzankov@gm...> - 2009-03-22 20:18:53
The object_tab seems to not be stored in the image files. So all O(xxx)
objects are not persisted.
I came to this since we keep a list of all mutex records in O(all_mutexes)
and in loadmem() I re-create the OS objects. I observe that a lot of
mutexes are missed (and I think this is causing the problems on FreeBSD -
wondering also why it "works fine" on Linux - probably just a good luck).
Also I am wondering how O(all_packages) is preserved? Do not see anything
special about it in the code (except for the standard packages).
And another thing that bugs me - the otab of modules is saved/loaded
in/from the image - but nothing about global object_tab.
If that's the case (O() objects not persisted and no easy way to keep
them) - I think to move O(all_threads), O(all_mutexes) and
O(all_exemptions) to be symbols instead?
From: Vladimir Tzankov <vtzankov@gm...> - 2009-03-23 07:34:29
On Sun, 22 Mar 2009 22:18:19 +0200, Vladimir Tzankov <vtzankov@...>
> The object_tab seems to not be stored in the image files. So all O(xxx)
> objects are not persisted.
Sorry - my mistake. All O() objects are saved/loaded.
Simply during bootstrapping the value of O(all_mutexes) is getting
overwritten (in initmem(), init_packages() is called before