Files
hakmem/core
Moe Charm (CI) db833142f1 Fix: malloc 初期化デッドロックを解消
**問題:**
- Larson ベンチマークが起動時に futex でハング
- 全プロセスが FUTEX_WAIT_PRIVATE で永遠に待機
- 初期化が完了せず、何も出力されない

**根本原因:**
`core/box/hak_wrappers.inc.h` の `malloc()` 関数で、
Line 42 の `getenv("HAKMEM_SFC_DEBUG")` が `g_initializing` チェックより前に実行される
→ `getenv()` が内部で malloc を呼ぶ
→ 無限再帰 → pthread_once デッドロック

**修正内容:**
`g_initializing` チェックを malloc() の最初に移動 (Line 41-44)
- 初期化中の再帰呼び出しを即座に libc にフォールバック
- getenv() などの init 関数が malloc を呼んでも安全

**効果:**
- デッドロック完全解消 
- Larson ベンチマーク正常起動
- 性能維持: 4,192,124 ops/s (4.19M baseline)

**テスト:**
```bash
./larson_hakmem 1 8 128 128 1 1 1        # → 367,082 ops/s 
./larson_hakmem 2 8 128 1024 1 12345 4  # → 4,192,124 ops/s 
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 00:37:33 +09:00
..