| 1 | (1) Make implementation changes necessary to allow multiple processes |
| 2 | to use the mmalloc managed region simultaneously. This requires, |
| 3 | at the minimum, some sort of cooperative locking that ensures that |
| 4 | only one process at a time is changing any of the mmalloc managed |
| 5 | data structures (its ok for the mmalloc managed data regions to be |
| 6 | changed at any time since we don't care about their contents). |
| 7 | |
| 8 | (2) In order to support multiple processes using the mmalloc managed |
| 9 | region, the malloc descriptor needs to be broken into two parts, |
| 10 | one part which is specific to the given process and is maintained |
| 11 | separately on a per process basis, and another part which is common |
| 12 | to all processes. As an example, the file descriptor is specific |
| 13 | to a given process, as are the morecore and abortfunc pointers. |
| 14 | However magic[], the version number, the flags field, etc are |
| 15 | common to all processes. |