struct TheHeapLock

Defined at line 28 of file ../../zircon/kernel/lib/heap/cmpctmalloc/include/lib/cmpctmalloc.h

This is a popular lock. Critical sections protected by this lock are

*usually* short-lived, so we'd like to minimize lock thrash by disabling

preemption while holding the lock. However, in degenerate cases (e.g. with

excessive PMM fragmentation), the lock can be held for long periods of time.

In those case, we don't want to overly delay the scheduling of a higher

priority task. To strike a balance between these competing concerns, we use

|CriticalMutex| which employs "time-limited preemption deferral".

For more information, see https://fxbug.dev/399694236.