Fix mid free routing and relax mid W_MAX
This commit is contained in:
@ -16,10 +16,17 @@ void* hak_pool_try_alloc(size_t size, uintptr_t site_id) {
|
||||
// Debug for 33-41KB allocations
|
||||
if (size >= 33000 && size <= 41000) { HAKMEM_LOG("[Pool] hak_pool_try_alloc: size=%zu (after init)\n", size); }
|
||||
|
||||
// P1.7 approach: Avoid using pool during ALL wrapper calls (conservative but safe)
|
||||
// P1.7 guard: allow pool by default even when called from wrappers.
|
||||
// Only block if explicitly disabled via env or during nested recursion.
|
||||
extern int hak_in_wrapper(void);
|
||||
if (hak_in_wrapper() && !g_wrap_l2_enabled) {
|
||||
if (size >= 33000 && size <= 41000) { HAKMEM_LOG("[Pool] REJECTED: in_wrapper=%d, wrap_l2=%d\n", hak_in_wrapper(), g_wrap_l2_enabled); }
|
||||
extern __thread int g_hakmem_lock_depth;
|
||||
int in_wrapper = hak_in_wrapper();
|
||||
if (in_wrapper && g_hakmem_lock_depth > 1) {
|
||||
if (size >= 33000 && size <= 41000) { HAKMEM_LOG("[Pool] REJECTED: nested wrapper depth=%d\n", g_hakmem_lock_depth); }
|
||||
return NULL;
|
||||
}
|
||||
if (in_wrapper && !g_wrap_l2_enabled) {
|
||||
if (size >= 33000 && size <= 41000) { HAKMEM_LOG("[Pool] REJECTED: in_wrapper=%d, wrap_l2=%d\n", in_wrapper, g_wrap_l2_enabled); }
|
||||
return NULL;
|
||||
}
|
||||
if (!hak_pool_is_poolable(size)) {
|
||||
|
||||
Reference in New Issue
Block a user