alandtse / alandtse/devbench

DevBench blocks main thread at kPostLoad, prevents other SKSE plugins from registering with OAR

Offen
#86 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
10
Forks
4
Ø Merge
1 T. 10 Std.
Gemergte PRs (30 T.)
17

Beschreibung

## Bug Description

When DevBench is enabled, **Open Animation Replacer (OAR)** fails to detect the **IEDConditionExtensions** plugin, resulting in 448+ "Missing required plugin" errors. Disabling DevBench resolves the issue entirely.

## Root Cause

DevBench reads config and starts its HTTP server at `kPostLoad`. On my setup, this blocks the main thread for **~53 seconds** (timestamp `19:20:20` → `19:21:13`). Since SKSE processes `kPostLoad` callbacks sequentially by handle order, and IEDConditionExtensions (handle 93) loads after DevBench (handle 32), the prolonged blocking prevents IEDConditionExtensions from calling OAR's plugin registration API before OAR initializes its condition factory.

## Timeline Evidence

```
19:20:20 [I] devbench 1.18.2 loaded
19:20:25 [I] devbench: config enabled=true port=8920
19:20:39 [I] devbench: keyboard input API ready ← 49s after config read
19:21:13 [I] devbench: registered SMF pages ← 53s total kPostLoad
19:21:13 [I] OAR: Condition and function factories initialized
19:21:13 [E] OAR: Missing required plugin IEDConditionExtensions version 1.0.0.0! ← 448 errors
19:21:20 [I] OAR: TrueDirectionalMovement registered API ← IED never registered
```

## SKSE Log Confirmation

All DLLs load correctly — no load failures:

```
handle 32: devbench.dll loaded correctly
handle 93: OpenAnimationReplacer-IEDConditionExtensions.dll loaded correctly
handle 94: OpenAnimationReplacer.dll loaded correctly
```

## Reproduction

1. Install DevBench v1.18.2 + OAR v3.2.0 + OpenAnimationReplacer-IEDConditionExtensions v1.0.2.0
2. Enable all in MO2
3. Launch Skyrim SE 1.5.97
4. OAR's "Problems" panel shows ~200+ IED-related errors
5. Disable DevBench → errors disappear

## Environment

- Skyrim SE 1.5.97
- SKSE 2.0.20
- DevBench 1.18.2
- OpenAnimationReplacer 3.2.0
- OpenAnimationReplacer-IEDConditionExtensions 1.0.2.0
- MO2 with 478 plugins (121 full + 357 light)
- Windows 10

## Suggestion

Consider deferring the HTTP server startup to `kDataLoaded` or later, or making server startup non-blocking so it doesn't hold the main thread during the critical `kPostLoad` window where other plugins need to register their APIs.

## Workaround

Set `"enabled": false` in `Data/SKSE/Plugins/devbench/config.json` — the DLL still loads (SKSE features work) but the HTTP server doesn't start, freeing the main thread for other plugins.

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

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.