HL.exe hangs with 0 CPU usage, when my module calls MF_UnregisterSPForward. I used tracing via MF_Log to catch dead-end.
Code:
void OnPluginsLoaded()
{
// built-in dependencies
{
BuiltIn_RegisterDependency(DEPENDENCY_INITIALIZING);
}
// forward plugin_dependencies()
{
/* tracer here */
int fwdid_PluginDependencies = MF_RegisterForward("plugin_dependencies", ET_IGNORE, FP_DONE);
// good...
/* tracer here */
MF_ExecuteForward(fwdid_PluginDependencies);
// good...
/* tracer here */ // last tracer that gives output
MF_UnregisterSPForward(fwdid_PluginDependencies);
/* tracer here */ // no output
}
BuiltIn_ResolveDependency(DEPENDENCY_INITIALIZING);
}
Stack for thread hl.exe+0x4b7e
(i dunno what may be usefull, so copied it just for case)
Quote:
0 ntkrnlpa.exe!KiUnexpectedInterrupt+0x8d
1 ntkrnlpa.exe!PsDereferencePrimaryToken+0x362
2 ntkrnlpa.exe!KiDeliverApc+0xb3
3 ntkrnlpa.exe!ZwYieldExecution+0x19a4
4 ntkrnlpa.exe!NtWaitForSingleObject+0x9a
5 ntkrnlpa.exe!KeReleaseInStackQueuedSpinLockFr omDpcLevel+0xb14
6 ntdll.dll!KiFastSystemCallRet
7 kernel32.dll!WaitForSingleObject+0x12
8 mss32.dll!AIL_set_file_callbacks+0x2b60
9 mss32.dll!AIL_waveOutClose+0xa7
10 ntdll.dll!LdrInitializeThunk+0x24
11 ntdll.dll!LdrDisableThreadCalloutsForDll+0x94 9
12 kernel32.dll!FreeLibrary+0x19
13 GameOverlayRenderer.dll+0x1d0fc
14 hl.exe+0x4c5e
15 kernel32.dll!RegisterWaitForInputIdle+0x49
|
MSVC2010, Win32 XP SP3, CS client (not HLDS)
__________________