VirtualBox

Changeset 59912 in vbox for trunk


Ignore:
Timestamp:
Mar 3, 2016 6:04:04 PM (9 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:8200: Runtime UI: Stability fix for PowerUp procedure, replacing r105792: Manually re-caching actual machine state when necessary.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp

    r59911 r59912  
    213213            return false;
    214214
    215     /* Check if we missed a really quick termination after successful powerUp().
    216      * We should take into account the fact of async machine-state arrival.
    217      * And we don't even want to loop at this point to handle posted
    218      * machine-state events, so we are relying onto CMachine getter
    219      * to return the fresh state of the thing we want. */
    220     const KMachineState ms = machine().GetState();
    221     switch (ms)
    222     {
    223         case KMachineState_PoweredOff:
    224         case KMachineState_Saved:
    225         case KMachineState_Teleported:
    226         case KMachineState_Aborted:
    227         {
    228             LogRel(("GUI: Aborting startup due to invalid machine state detected: %d\n", ms));
    229             return false;
    230         }
    231         default:
    232             break;
     215    /* Make sure all the pending Console events converted to signals
     216     * during the powerUp() progress above reached their destinations.
     217     * That is necessary to make sure all the pending machine state change events processed.
     218     * We can't just use the machine state directly acquired from IMachine because there
     219     * will be few places which are using stale machine state, not just this one. */
     220    QApplication::sendPostedEvents(0, QEvent::MetaCall);
     221
     222    /* Check if we missed a really quick termination after successful startup: */
     223    if (isTurnedOff())
     224    {
     225        LogRel(("GUI: Aborting startup due to invalid machine state detected: %d\n", machineState()));
     226        return false;
    233227    }
    234228
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette