- Timestamp:
- Mar 8, 2018 12:26:36 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 121201
- Location:
- trunk/src/VBox/Main
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestProcessImpl.h
r71263 r71272 87 87 int i_prepareExecuteEnv(const char *pszEnv, void **ppvList, ULONG *pcbList, ULONG *pcEnvVars); 88 88 int i_setProcessStatus(ProcessStatus_T procStatus, int procRc); 89 static voidi_startProcessThreadTask(GuestProcessStartTask *pTask);89 static int i_startProcessThreadTask(GuestProcessStartTask *pTask); 90 90 /** @} */ 91 91 … … 213 213 public: 214 214 215 int Init(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, bool fAsync, int *pGuestRc);216 217 int i_getCurrentBlock(uint32_t uHandle, GuestProcessStreamBlock &strmBlock);218 219 int i_getRc(void) const;220 221 GuestProcessStream & i_getStdOut(void) { return mStdOut; }222 223 GuestProcessStream & i_getStdErr(void) { return mStdErr; }224 225 int i_wait(uint32_t fFlags, int *pGuestRc);226 227 int i_waitEx(uint32_t fFlags, GuestProcessStreamBlock *pStreamBlock, int *pGuestRc);228 229 bool i _isRunning(void);230 231 int i_terminatedOk(int32_t *piExitCode = NULL);232 233 int i_terminate(uint32_t uTimeoutMS, int *pGuestRc);234 235 public: 236 237 static int i_run(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, int *pGuestRc);238 239 static int i_runErrorInfo(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, GuestProcessToolErrorInfo &errorInfo);240 241 static int i_runEx(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo,242 243 244 static int i_runExErrorInfo(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo,245 246 247 static int i_exitCodeToRc(const GuestProcessStartupInfo &startupInfo, int32_t iExitCode);248 249 static int i_exitCodeToRc(const char *pszTool, int32_t iExitCode);215 int init(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, bool fAsync, int *pGuestRc); 216 217 int getCurrentBlock(uint32_t uHandle, GuestProcessStreamBlock &strmBlock); 218 219 int getRc(void) const; 220 221 GuestProcessStream &getStdOut(void) { return mStdOut; } 222 223 GuestProcessStream &getStdErr(void) { return mStdErr; } 224 225 int wait(uint32_t fFlags, int *pGuestRc); 226 227 int waitEx(uint32_t fFlags, GuestProcessStreamBlock *pStreamBlock, int *pGuestRc); 228 229 bool isRunning(void); 230 231 int terminatedOk(int32_t *piExitCode = NULL); 232 233 int terminate(uint32_t uTimeoutMS, int *pGuestRc); 234 235 public: 236 237 static int run(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, int *pGuestRc); 238 239 static int runErrorInfo(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, GuestProcessToolErrorInfo &errorInfo); 240 241 static int runEx(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, 242 GuestCtrlStreamObjects *pStrmOutObjects, uint32_t cStrmOutObjects, int *pGuestRc); 243 244 static int runExErrorInfo(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, 245 GuestCtrlStreamObjects *pStrmOutObjects, uint32_t cStrmOutObjects, GuestProcessToolErrorInfo &errorInfo); 246 247 static int exitCodeToRc(const GuestProcessStartupInfo &startupInfo, int32_t iExitCode); 248 249 static int exitCodeToRc(const char *pszTool, int32_t iExitCode); 250 250 251 251 protected: … … 256 256 GuestProcessStream mStdOut; 257 257 GuestProcessStream mStdErr; 258 259 258 }; 260 259 -
trunk/src/VBox/Main/src-client/GuestDirectoryImpl.cpp
r71264 r71272 106 106 * Note: No guest rc available because operation is asynchronous. 107 107 */ 108 vrc = mData.mProcessTool. Init(mSession, procInfo,108 vrc = mData.mProcessTool.init(mSession, procInfo, 109 109 true /* Async */, NULL /* Guest rc */); 110 110 } … … 253 253 AssertPtrReturn(pGuestRc, VERR_INVALID_POINTER); 254 254 255 int rc = mData.mProcessTool. i_terminate(30 * 1000 /* 30s timeout */, pGuestRc);255 int rc = mData.mProcessTool.terminate(30 * 1000 /* 30s timeout */, pGuestRc); 256 256 if (RT_FAILURE(rc)) 257 257 return rc; … … 283 283 284 284 GuestProcessStreamBlock curBlock; 285 int rc = mData.mProcessTool. i_waitEx(GUESTPROCESSTOOL_WAIT_FLAG_STDOUT_BLOCK,285 int rc = mData.mProcessTool.waitEx(GUESTPROCESSTOOL_WAIT_FLAG_STDOUT_BLOCK, 286 286 &curBlock, pGuestRc); 287 287 if (RT_SUCCESS(rc)) … … 291 291 * upcoming stream block next time. 292 292 */ 293 if (!mData.mProcessTool.i _isRunning())294 rc = mData.mProcessTool. i_terminatedOk();293 if (!mData.mProcessTool.isRunning()) 294 rc = mData.mProcessTool.terminatedOk(); 295 295 296 296 if (RT_SUCCESS(rc)) … … 391 391 case VWRN_GSTCTL_PROCESS_EXIT_CODE: 392 392 hr = setError(VBOX_E_IPRT_ERROR, tr("Reading directory \"%s\" failed: %Rrc"), 393 mData.mOpenInfo.mPath.c_str(), mData.mProcessTool. i_getRc());393 mData.mOpenInfo.mPath.c_str(), mData.mProcessTool.getRc()); 394 394 break; 395 395 -
trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
r71263 r71272 1165 1165 { 1166 1166 delete pTask; 1167 LogFlow (("GuestProcess: Could not create GuestProcessStartTask object\n"));1167 LogFlowThisFunc(("Could not create GuestProcessStartTask object\n")); 1168 1168 throw VERR_MEMOBJ_INIT_FAILED; 1169 1169 } 1170 LogFlow (("GuestProcess: Successfully created GuestProcessStartTask object\n"));1170 LogFlowThisFunc(("Successfully created GuestProcessStartTask object\n")); 1171 1171 //this function delete pTask in case of exceptions, so there is no need in the call of delete operator 1172 1172 hr = pTask->createThread(); … … 1179 1179 { 1180 1180 vrc = eVRC; 1181 LogFlow (("GuestSession:Could not create thread for GuestProcessStartTask task %Rrc\n", vrc));1181 LogFlowThisFunc(("Could not create thread for GuestProcessStartTask task %Rrc\n", vrc)); 1182 1182 } 1183 1183 … … 1187 1187 1188 1188 /* static */ 1189 voidGuestProcess::i_startProcessThreadTask(GuestProcessStartTask *pTask)1189 int GuestProcess::i_startProcessThreadTask(GuestProcessStartTask *pTask) 1190 1190 { 1191 1191 LogFlowFunc(("pTask=%p\n", pTask)); … … 1196 1196 AutoCaller autoCaller(pProcess); 1197 1197 if (FAILED(autoCaller.rc())) 1198 return; 1199 1200 int vrc = pProcess->i_startProcess(30 * 1000 /* 30s timeout */, 1201 NULL /* Guest rc, ignored */); 1202 /** @todo 1203 * 1204 * r=bird: what's up with vrc here? Safe to ignore it? 1205 * 1206 */ 1207 1198 return VERR_COM_UNEXPECTED; 1199 1200 int vrc = pProcess->i_startProcess(30 * 1000 /* 30s timeout */, NULL /* Guest rc, ignored */); 1208 1201 /* Nothing to do here anymore. */ 1209 1202 1210 LogFlowFunc(("pProcess=%p vrc=%Rrc (ignored)\n", (GuestProcess *)pProcess, vrc));1211 NOREF(vrc);1203 LogFlowFunc(("pProcess=%p, vrc=%Rrc\n", (GuestProcess *)pProcess, vrc)); 1204 return vrc; 1212 1205 } 1213 1206 … … 1959 1952 GuestProcessTool::~GuestProcessTool(void) 1960 1953 { 1961 i_terminate(30 * 1000, NULL /* pGuestRc */);1962 } 1963 1964 int GuestProcessTool:: Init(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo,1954 terminate(30 * 1000, NULL /* pGuestRc */); 1955 } 1956 1957 int GuestProcessTool::init(GuestSession *pGuestSession, const GuestProcessStartupInfo &startupInfo, 1965 1958 bool fAsync, int *pGuestRc) 1966 1959 { … … 2000 1993 } 2001 1994 2002 int GuestProcessTool:: i_getCurrentBlock(uint32_t uHandle, GuestProcessStreamBlock &strmBlock)1995 int GuestProcessTool::getCurrentBlock(uint32_t uHandle, GuestProcessStreamBlock &strmBlock) 2003 1996 { 2004 1997 const GuestProcessStream *pStream = NULL; … … 2025 2018 } 2026 2019 2027 int GuestProcessTool:: i_getRc(void) const2020 int GuestProcessTool::getRc(void) const 2028 2021 { 2029 2022 LONG exitCode = -1; … … 2031 2024 AssertComRC(hr); 2032 2025 2033 return GuestProcessTool:: i_exitCodeToRc(mStartupInfo, exitCode);2034 } 2035 2036 bool GuestProcessTool::i _isRunning(void)2026 return GuestProcessTool::exitCodeToRc(mStartupInfo, exitCode); 2027 } 2028 2029 bool GuestProcessTool::isRunning(void) 2037 2030 { 2038 2031 AssertReturn(!pProcess.isNull(), false); … … 2053 2046 2054 2047 /* static */ 2055 int GuestProcessTool:: i_run( GuestSession *pGuestSession,2048 int GuestProcessTool::run( GuestSession *pGuestSession, 2056 2049 const GuestProcessStartupInfo &startupInfo, 2057 2050 int *pGuestRc /* = NULL */) … … 2060 2053 2061 2054 GuestProcessToolErrorInfo errorInfo; 2062 int vrc = i_runErrorInfo(pGuestSession, startupInfo, errorInfo);2055 int vrc = runErrorInfo(pGuestSession, startupInfo, errorInfo); 2063 2056 if (RT_SUCCESS(vrc)) 2064 2057 { 2065 2058 if (errorInfo.guestRc == VWRN_GSTCTL_PROCESS_EXIT_CODE) 2066 guestRc = GuestProcessTool:: i_exitCodeToRc(startupInfo, errorInfo.iExitCode);2059 guestRc = GuestProcessTool::exitCodeToRc(startupInfo, errorInfo.iExitCode); 2067 2060 else 2068 2061 guestRc = errorInfo.guestRc; … … 2084 2077 */ 2085 2078 /* static */ 2086 int GuestProcessTool:: i_runErrorInfo( GuestSession *pGuestSession,2079 int GuestProcessTool::runErrorInfo( GuestSession *pGuestSession, 2087 2080 const GuestProcessStartupInfo &startupInfo, 2088 2081 GuestProcessToolErrorInfo &errorInfo) 2089 2082 { 2090 return i_runExErrorInfo(pGuestSession, startupInfo,2083 return runExErrorInfo(pGuestSession, startupInfo, 2091 2084 NULL /* paStrmOutObjects */, 0 /* cStrmOutObjects */, 2092 2085 errorInfo); … … 2105 2098 */ 2106 2099 /* static */ 2107 int GuestProcessTool:: i_runEx( GuestSession *pGuestSession,2100 int GuestProcessTool::runEx( GuestSession *pGuestSession, 2108 2101 const GuestProcessStartupInfo &startupInfo, 2109 2102 GuestCtrlStreamObjects *paStrmOutObjects, … … 2114 2107 2115 2108 GuestProcessToolErrorInfo errorInfo; 2116 int vrc = GuestProcessTool:: i_runExErrorInfo(pGuestSession, startupInfo, paStrmOutObjects, cStrmOutObjects, errorInfo);2109 int vrc = GuestProcessTool::runExErrorInfo(pGuestSession, startupInfo, paStrmOutObjects, cStrmOutObjects, errorInfo); 2117 2110 if (RT_SUCCESS(vrc)) 2118 2111 { 2119 2112 if (errorInfo.guestRc == VWRN_GSTCTL_PROCESS_EXIT_CODE) 2120 guestRc = GuestProcessTool:: i_exitCodeToRc(startupInfo, errorInfo.iExitCode);2113 guestRc = GuestProcessTool::exitCodeToRc(startupInfo, errorInfo.iExitCode); 2121 2114 else 2122 2115 guestRc = errorInfo.guestRc; … … 2149 2142 */ 2150 2143 /* static */ 2151 int GuestProcessTool:: i_runExErrorInfo( GuestSession *pGuestSession,2152 2153 2154 2155 2144 int GuestProcessTool::runExErrorInfo( GuestSession *pGuestSession, 2145 const GuestProcessStartupInfo &startupInfo, 2146 GuestCtrlStreamObjects *paStrmOutObjects, 2147 uint32_t cStrmOutObjects, 2148 GuestProcessToolErrorInfo &errorInfo) 2156 2149 { 2157 2150 AssertPtrReturn(pGuestSession, VERR_INVALID_POINTER); … … 2161 2154 2162 2155 GuestProcessTool procTool; 2163 int vrc = procTool. Init(pGuestSession, startupInfo, false /* Async */, &errorInfo.guestRc);2156 int vrc = procTool.init(pGuestSession, startupInfo, false /* Async */, &errorInfo.guestRc); 2164 2157 if (RT_SUCCESS(vrc)) 2165 2158 { … … 2169 2162 { 2170 2163 GuestProcessStreamBlock strmBlk; 2171 vrc = procTool. i_waitEx( paStrmOutObjects2164 vrc = procTool.waitEx( paStrmOutObjects 2172 2165 ? GUESTPROCESSTOOL_WAIT_FLAG_STDOUT_BLOCK 2173 2166 : GUESTPROCESSTOOL_WAIT_FLAG_NONE, &strmBlk, &errorInfo.guestRc); … … 2185 2178 { 2186 2179 /* Make sure the process runs until completion. */ 2187 vrc = procTool. i_wait(GUESTPROCESSTOOL_WAIT_FLAG_NONE, &errorInfo.guestRc);2180 vrc = procTool.wait(GUESTPROCESSTOOL_WAIT_FLAG_NONE, &errorInfo.guestRc); 2188 2181 if (RT_SUCCESS(vrc)) 2189 errorInfo.guestRc = procTool. i_terminatedOk(&errorInfo.iExitCode);2182 errorInfo.guestRc = procTool.terminatedOk(&errorInfo.iExitCode); 2190 2183 } 2191 2184 … … 2203 2196 * @param piExitCode Exit code of the tool. Optional. 2204 2197 */ 2205 int GuestProcessTool:: i_terminatedOk(int32_t *piExitCode /* = NULL */)2198 int GuestProcessTool::terminatedOk(int32_t *piExitCode /* = NULL */) 2206 2199 { 2207 2200 Assert(!pProcess.isNull()); … … 2209 2202 2210 2203 int vrc; 2211 if (!i _isRunning())2204 if (!isRunning()) 2212 2205 { 2213 2206 LONG iExitCode = -1; … … 2227 2220 } 2228 2221 2229 int GuestProcessTool:: i_wait(uint32_t fToolWaitFlags, int *pGuestRc)2230 { 2231 return i_waitEx(fToolWaitFlags, NULL /* pStrmBlkOut */, pGuestRc);2232 } 2233 2234 int GuestProcessTool:: i_waitEx(uint32_t fToolWaitFlags, GuestProcessStreamBlock *pStrmBlkOut, int *pGuestRc)2222 int GuestProcessTool::wait(uint32_t fToolWaitFlags, int *pGuestRc) 2223 { 2224 return waitEx(fToolWaitFlags, NULL /* pStrmBlkOut */, pGuestRc); 2225 } 2226 2227 int GuestProcessTool::waitEx(uint32_t fToolWaitFlags, GuestProcessStreamBlock *pStrmBlkOut, int *pGuestRc) 2235 2228 { 2236 2229 LogFlowThisFunc(("fToolWaitFlags=0x%x, pStreamBlock=%p, pGuestRc=%p\n", fToolWaitFlags, pStrmBlkOut, pGuestRc)); … … 2241 2234 { 2242 2235 AssertPtr(pStrmBlkOut); 2243 vrc = i_getCurrentBlock(OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut);2236 vrc = getCurrentBlock(OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut); 2244 2237 if (RT_SUCCESS(vrc)) 2245 2238 return vrc; … … 2368 2361 { 2369 2362 AssertPtr(pStrmBlkOut); 2370 vrc = i_getCurrentBlock(OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut);2363 vrc = getCurrentBlock(OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut); 2371 2364 2372 2365 /* When successful, break out of the loop because we're done … … 2419 2412 } 2420 2413 2421 int GuestProcessTool:: i_terminate(uint32_t uTimeoutMS, int *pGuestRc)2414 int GuestProcessTool::terminate(uint32_t uTimeoutMS, int *pGuestRc) 2422 2415 { 2423 2416 LogFlowThisFuncEnter(); … … 2444 2437 */ 2445 2438 /* static */ 2446 int GuestProcessTool:: i_exitCodeToRc(const GuestProcessStartupInfo &startupInfo, int32_t iExitCode)2439 int GuestProcessTool::exitCodeToRc(const GuestProcessStartupInfo &startupInfo, int32_t iExitCode) 2447 2440 { 2448 2441 if (startupInfo.mArguments.size() == 0) … … 2452 2445 } 2453 2446 2454 return i_exitCodeToRc(startupInfo.mArguments[0].c_str(), iExitCode);2447 return exitCodeToRc(startupInfo.mArguments[0].c_str(), iExitCode); 2455 2448 } 2456 2449 … … 2463 2456 */ 2464 2457 /* static */ 2465 int GuestProcessTool:: i_exitCodeToRc(const char *pszTool, int32_t iExitCode)2458 int GuestProcessTool::exitCodeToRc(const char *pszTool, int32_t iExitCode) 2466 2459 { 2467 2460 AssertPtrReturn(pszTool, VERR_INVALID_POINTER); -
trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
r71254 r71272 702 702 703 703 if (RT_SUCCESS(vrc)) 704 vrc = GuestProcessTool:: i_run(this, procInfo, pGuestRc);704 vrc = GuestProcessTool::run(this, procInfo, pGuestRc); 705 705 706 706 LogFlowFuncLeaveRC(vrc); … … 855 855 int vrcGuest = VERR_IPE_UNINITIALIZED_STATUS; 856 856 GuestCtrlStreamObjects stdOut; 857 int vrc = GuestProcessTool:: i_runEx(this, procInfo,857 int vrc = GuestProcessTool::runEx(this, procInfo, 858 858 &stdOut, 1 /* cStrmOutObjects */, 859 859 &vrcGuest); … … 1250 1250 1251 1251 if (RT_SUCCESS(vrc)) 1252 vrc = GuestProcessTool:: i_run(this, procInfo, pGuestRc);1252 vrc = GuestProcessTool::run(this, procInfo, pGuestRc); 1253 1253 1254 1254 LogFlowFuncLeaveRC(vrc); … … 1420 1420 int vrcGuest = VERR_IPE_UNINITIALIZED_STATUS; 1421 1421 GuestCtrlStreamObjects stdOut; 1422 int vrc = GuestProcessTool:: i_runEx(this, procInfo,1422 int vrc = GuestProcessTool::runEx(this, procInfo, 1423 1423 &stdOut, 1 /* cStrmOutObjects */, 1424 1424 &vrcGuest); … … 2781 2781 2782 2782 case VERR_INVALID_PARAMETER: 2783 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Invalid parameters given"));2784 break;2783 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Invalid parameters given")); 2784 break; 2785 2785 2786 2786 case VERR_BROKEN_PIPE: 2787 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Unexpectedly aborted"));2788 break;2787 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Unexpectedly aborted")); 2788 break; 2789 2789 2790 2790 default: 2791 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %Rrc"), rc);2792 break;2791 hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %Rrc"), rc); 2792 break; 2793 2793 } 2794 2794 } -
trunk/src/VBox/Main/src-client/GuestSessionImplTasks.cpp
r71263 r71272 493 493 LogFlowThisFunc(("procStatus=%d, exitCode=%d\n", procStatus, exitCode)); 494 494 if (procStatus == ProcessStatus_TerminatedNormally) 495 rc = GuestProcessTool:: i_exitCodeToRc(procInfo, exitCode);495 rc = GuestProcessTool::exitCodeToRc(procInfo, exitCode); 496 496 else 497 497 rc = VERR_GENERAL_FAILURE; … … 790 790 LogFlowThisFunc(("procStatus=%d, exitCode=%d\n", procStatus, exitCode)); 791 791 if (procStatus == ProcessStatus_TerminatedNormally) 792 rc = GuestProcessTool:: i_exitCodeToRc(procInfo, exitCode);792 rc = GuestProcessTool::exitCodeToRc(procInfo, exitCode); 793 793 else 794 794 rc = VERR_GENERAL_FAILURE; … … 994 994 dirOpenInfo.mFlags = 0; /** @todo Handle flags? */ 995 995 996 RT_BREAKPOINT(); 997 996 998 ComObjPtr <GuestDirectory> pDir; int rcGuest; 997 999 rc = mSession->i_directoryOpenInternal(dirOpenInfo, pDir, &rcGuest); … … 1018 1020 } 1019 1021 1022 RT_BREAKPOINT(); 1023 1020 1024 ComObjPtr<GuestFsObjInfo> fsObjInfo; 1021 1025 while (RT_SUCCESS(rc = pDir->i_readInternal(fsObjInfo, &rcGuest))) … … 1029 1033 AssertComRC(hr2); 1030 1034 1035 LONG64 lCT = 0; 1036 hr2 = fsObjInfo->COMGETTER(ChangeTime)(&lCT); 1037 AssertComRC(hr2); 1038 1031 1039 Utf8Str strName(bstrName); 1032 1040 1033 Log FlowThisFunc(("strName=%ls\n", strName.c_str()));1041 LogRel(("strName=%s, lCT=%RI64\n", strName.c_str(), lCT)); 1034 1042 1035 1043 switch (enmObjType) … … 1048 1056 && !RTStrSimplePatternMatch(strFilter.c_str(), strName.c_str())) 1049 1057 fSkip = true; 1058 1059 fSkip = true; 1050 1060 1051 1061 if ( fRecursive … … 1090 1100 rc = VINF_SUCCESS; 1091 1101 1102 RT_BREAKPOINT(); 1103 1092 1104 pDir->i_closeInternal(&rcGuest); 1105 1106 RT_BREAKPOINT(); 1093 1107 1094 1108 LogFlowFunc(("Leaving '%s', rc=%Rrc\n", strSrcCur.c_str(), rc)); … … 1714 1728 GuestProcessTool procTool; 1715 1729 int rcGuest = VERR_IPE_UNINITIALIZED_STATUS; 1716 int vrc = procTool. Init(pSession, procInfo, false /* Async */, &rcGuest);1730 int vrc = procTool.init(pSession, procInfo, false /* Async */, &rcGuest); 1717 1731 if (RT_SUCCESS(vrc)) 1718 1732 { 1719 1733 if (RT_SUCCESS(rcGuest)) 1720 vrc = procTool. i_wait(GUESTPROCESSTOOL_WAIT_FLAG_NONE, &rcGuest);1734 vrc = procTool.wait(GUESTPROCESSTOOL_WAIT_FLAG_NONE, &rcGuest); 1721 1735 if (RT_SUCCESS(vrc)) 1722 vrc = procTool. i_terminatedOk();1736 vrc = procTool.terminatedOk(); 1723 1737 } 1724 1738 … … 1730 1744 setProgressErrorMsg(VBOX_E_IPRT_ERROR, 1731 1745 Utf8StrFmt(GuestSession::tr("Running update file \"%s\" on guest failed: %Rrc"), 1732 procInfo.mExecutable.c_str(), procTool. i_getRc()));1746 procInfo.mExecutable.c_str(), procTool.getRc())); 1733 1747 break; 1734 1748
Note:
See TracChangeset
for help on using the changeset viewer.