Changeset 35135 in vbox
- Timestamp:
- Dec 15, 2010 1:41:41 PM (14 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
-
VirtualBoxClientImpl.cpp (modified) (6 diffs)
-
include/VirtualBoxClientImpl.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/VirtualBoxClientImpl.cpp
r34642 r35135 73 73 AssertFailedReturn(E_FAIL); 74 74 75 rc = unconst(mData.m_pVirtualBox).createLocalObject(CLSID_VirtualBox);75 rc = mData.m_pVirtualBox.createLocalObject(CLSID_VirtualBox); 76 76 AssertComRCReturnRC(rc); 77 77 … … 130 130 } 131 131 132 unconst(mData.m_pVirtualBox).setNull();132 mData.m_pVirtualBox.setNull(); 133 133 134 134 ASMAtomicDecU32(&g_cInstances); … … 151 151 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 152 152 153 /* this is const, no need to lock */153 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 154 154 mData.m_pVirtualBox.queryInterfaceTo(aVirtualBox); 155 155 return S_OK; … … 220 220 { 221 221 HRESULT rc = S_OK; 222 ComPtr<IVirtualBox> pV = pThis->mData.m_pVirtualBox; 222 ComPtr<IVirtualBox> pV; 223 { 224 AutoReadLock alock(pThis COMMA_LOCKVAL_SRC_POS); 225 pV = pThis->mData.m_pVirtualBox; 226 } 223 227 if (!pV.isNull()) 224 228 { … … 228 232 { 229 233 LogRel(("VirtualBoxClient: detected unresponsive VBoxSVC (rc=%Rhrc)\n", rc)); 234 { 235 AutoWriteLock alock(pThis COMMA_LOCKVAL_SRC_POS); 236 /* Throw away the VirtualBox reference, it's no longer 237 * usable as VBoxSVC terminated in the mean time. */ 238 pThis->mData.m_pVirtualBox.setNull(); 239 } 230 240 fireVBoxSVCUnavailableEvent(pThis->mData.m_pEventSource); 231 232 /* Throw away the VirtualBox reference, it's no longer233 * usable as VBoxSVC terminated in the mean time. */234 unconst(pThis->mData.m_pVirtualBox).setNull();235 241 } 236 242 } … … 241 247 * restart attempts in some wedged config can cause high CPU 242 248 * and disk load. */ 243 rc = unconst(pThis->mData.m_pVirtualBox).createLocalObject(CLSID_VirtualBox); 249 ComPtr<IVirtualBox> pVBox; 250 rc = pVBox.createLocalObject(CLSID_VirtualBox); 244 251 if (FAILED(rc)) 245 252 cMillies = 3 * VBOXCLIENT_DEFAULT_INTERVAL; 246 253 else 254 { 255 LogRel(("VirtualBoxClient: detected working VBoxSVC (rc=%Rhrc)\n", rc)); 256 { 257 AutoWriteLock alock(pThis COMMA_LOCKVAL_SRC_POS); 258 /* Update the VirtualBox reference, there's a working 259 * VBoxSVC again from now on. */ 260 pThis->mData.m_pVirtualBox = pVBox; 261 } 262 fireVBoxSVCAvailableEvent(pThis->mData.m_pEventSource); 247 263 cMillies = VBOXCLIENT_DEFAULT_INTERVAL; 264 } 248 265 } 249 266 } -
trunk/src/VBox/Main/include/VirtualBoxClientImpl.h
r34642 r35135 76 76 {} 77 77 78 constComPtr<IVirtualBox> m_pVirtualBox;78 ComPtr<IVirtualBox> m_pVirtualBox; 79 79 const ComObjPtr<EventSource> m_pEventSource; 80 80
Note:
See TracChangeset
for help on using the changeset viewer.

