VirtualBox

Changeset 77910 in vbox for trunk/src/VBox/Main/src-server


Ignore:
Timestamp:
Mar 27, 2019 11:33:01 AM (6 years ago)
Author:
vboxsync
Message:

Main: bugref:7929: Added ability to change the priority of the VM process

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r77436 r77910  
    70347034}
    70357035
    7036 HRESULT Machine::getVMProcessPriority(com::Utf8Str &aVMProcessPriority)
     7036HRESULT Machine::getVMProcessPriority(VMProcPriority_T *aVMProcessPriority)
    70377037{
    70387038    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    70397039
    7040     aVMProcessPriority = mUserData->s.strVMPriority;
    7041 
    7042     return S_OK;
    7043 }
    7044 
    7045 HRESULT Machine::setVMProcessPriority(const com::Utf8Str &aVMProcessPriority)
     7040    *aVMProcessPriority = mUserData->s.enmVMPriority;
     7041
     7042    return S_OK;
     7043}
     7044
     7045HRESULT Machine::setVMProcessPriority(VMProcPriority_T aVMProcessPriority)
    70467046{
    70477047    RT_NOREF(aVMProcessPriority);
     
    70507050    if (SUCCEEDED(hrc))
    70517051    {
    7052         /** @todo r=klaus: currently this is marked as not implemented, as
    7053          * the code for setting the priority of the process is not there
    7054          * (neither when starting the VM nor at runtime). */
    7055         ReturnComNotImplemented();
    7056 #if 0
    70577052        hrc = mUserData.backupEx();
    70587053        if (SUCCEEDED(hrc))
    70597054        {
    70607055            i_setModified(IsModified_MachineData);
    7061             mUserData->s.strVMPriority = aVMProcessPriority;
    7062         }
    7063 #endif
    7064     }
     7056            mUserData->s.enmVMPriority = aVMProcessPriority;
     7057        }
     7058    }
     7059    alock.release();
     7060    if (SUCCEEDED(hrc))
     7061        hrc = i_onVMProcessPriorityChange(aVMProcessPriority);
    70657062    return hrc;
    70667063}
     
    1406814065}
    1406914066
     14067HRESULT SessionMachine::i_onVMProcessPriorityChange(VMProcPriority_T aPriority)
     14068{
     14069    LogFlowThisFunc(("\n"));
     14070
     14071    AutoCaller autoCaller(this);
     14072    AssertComRCReturn(autoCaller.rc(), autoCaller.rc());
     14073
     14074    ComPtr<IInternalSessionControl> directControl;
     14075    {
     14076        AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     14077        if (mData->mSession.mLockType == LockType_VM)
     14078            directControl = mData->mSession.mDirectControl;
     14079    }
     14080
     14081    /* ignore notifications sent after #OnSessionEnd() is called */
     14082    if (!directControl)
     14083        return S_OK;
     14084
     14085    return directControl->OnVMProcessPriorityChange(aPriority);
     14086}
     14087
    1407014088/**
    1407114089 *  @note Locks this object for reading.
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