arena-level interface refcounts

Issue #100 resolved
Justin Schwartz created an issue

mm->GetInterface(I_INTERFACE, arena) does not behave as expected. it will implement a global reference count, causing all calls to mm->UnregInterface(I_INTERFACE, arena) to fail if that interface is used on more than one arena.

Comments (4)

  1. Justin Schwartz reporter

    planned new functions: mm->GetArenaInterface mm->ReleaseArenaInterface

    planned new functionality: mm->DetachAllFromArena returns MM_OK/MM_FAIL. failing to detach all from arena will keep arena in unkillable state, it'll spew some errors so you know to fix your code to not reach a state where it can fail to detach on destroy.

  2. Justin Schwartz reporter

    added "arena refcounts" which will allow modules to register interfaces on an arena and successfully tell whether any other attached modules are using that interface. still requires additional changes to arenaman and possibly other files to more properly handle MM_DETACH returning MM_FAIL. references issue 100

    Wiki macro error: Changeset dbf981391773 not found.

  3. Justin Schwartz reporter

    Functionality added to the "arenarefcount" branch, see Wiki macro error: Changeset 1180 not found. and Wiki macro error: Changeset 1184 not found.. Testing was done, and all expected uses of code should check out.

    Once it's merged in to the main branch this issue should be marked as resolved.

  4. Log in to comment