DavidW wrote:
I do the following steps:
1, call IConsole_saveState
2,call IProgress_waitForCompletion
3,call IProgress_getPercent, result is 100
4, connect to session again, call IMachine_getState
I expect the result should be “Saved”, but I still get “Running”. But
the VM is saved, that means it does the savestate, but returns without
waiting for them to complete.
Your code sequence triggers a "live save state", as opposed to the
regular save state which the GUI triggers - the latter requires the VM
to be paused before calling saveState.
VBox.log should have more information - I suspect that the save state
operation fails for some reason, and in that case the correct behavior
is to go back to the previous state, i.e. "Running". A live save state
can fail for many more reasons than a regular one, and tends to give a
bigger saved state file.
I checked the code, and there should be really no opportunity for a race
with updating the state - the completion is signalled after the state is
updated.
Klaus
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev