I did some more investigation, the hang is caused by this call:
DECLCALLBACK(int) Console::saveStateThread(RTTHREAD Thread, void *pvUser)
{
int vrc = VMR3Save(that->mpVM,
task->mSavedStateFile.c_str(),
false, /*fContinueAfterwards*/
Console::stateProgressCallback,
static_cast<VMProgressTask*>(task.get()),
&fSuspenededBySave); <====
}
after 0% was printed out, VMR3Save() never returns.
Interestingly, the freeze might to do with 2D accleration, because if I disble
2D acceleration, it does not occur that often.
The freeze won't occur if doing saving state from the vm GUI console, the Close
button.
--- On Fri, 7/23/10, Huihong Luo <huisi...@yahoo.com> wrote:
From: Huihong Luo <huisi...@yahoo.com>
Subject: savestate still hangs sometimes (reported before)
To: vbox-dev@virtualbox.org
Date: Friday, July 23, 2010, 6:53 PM
when 2D acceleration is enabled
c:\virtualbox-dev\vbox\out\win.x86\release\bin>VBoxManage.exe controlvm vm1
savestate
0%...
hangs after 0% is displayed.
If doing from the Close menu, after dialog box is displayed, then choose Save
State, then works well.
I tried to break the code, it seems stop inside some Windows message loop.
renderspu_init.c
renderSPUWindowThreadProc()
{
...
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
...
}
This is very annoying. need to fix these crash bugs when vm is shutting down.
_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
http://vbox.innotek.de/mailman/listinfo/vbox-dev