Memory woes in 0.0.1.5...
Status: Pre-Alpha
Brought to you by:
bryonh57
Here is a list of the problems I have encountered
today in MM, so I can get back to them later.
using 0.0.1.5 (12/13 b)
---
There are no critical section locks on allocations,
causing problems in bonemaker() and various other
memory places. There used to be critical sections
there.
PAGE::cull() causes a crash if the crt manager is
installed.
Redirected printf() makes a copy of a string and
expects opal to be the memory manager.
A method for detecting the currently installed manager
was needed.
The initial memory manager was set to 0, not 'crt'
---
bryanw.
Logged In: YES
user_id=120775
Thanks for your patience.
All of the problems you are reporting are fixed. Now things
are very different. The mm::mount(u32) function is still
there but all it does is call the thread. Each thread now
has it's own current mmu id plus the allocation and
deallocation pointers.
To change the memory manager in the current thread you may
write:
u32 last=mm::mount('crt');
and to change it back again:
mm::mount(last);
To kill the opal manager and return to the 'crt' write:
mm::mount('doh!');
The PAGE object has undergone some changes. Both it and the
bucket quotas will allocate themselves from the far heap.
Bucket memory is now referred to as "local thread memory".