Changeset 75750 in vbox
- Timestamp:
- Nov 26, 2018 7:01:13 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/GuestControl/service.cpp
r75746 r75750 629 629 } 630 630 631 /** Used by Wakeup() and RunCurrent(). */ 631 632 int Run(ClientConnection const *pConnection, 632 633 HostCommand *pHostCmd) … … 661 662 * host command via an own GUEST_ type message. 662 663 */ 663 if (rc == VERR_TOO_MUCH_DATA) 664 if ( rc == VERR_TOO_MUCH_DATA 665 || rc == VERR_CANCELLED) 664 666 { 665 667 if (mHostCmdTries == 6) … … 722 724 } 723 725 726 /** Used by for Service::hostProcessCommand(). */ 724 727 int Wakeup(void) 725 728 { … … 779 782 } 780 783 784 /** Internal worker for Run(). */ 781 785 int SendReply(ClientConnection const *pConnection, 782 786 HostCommand *pHostCmd) … … 784 788 AssertPtrReturn(pConnection, VERR_INVALID_POINTER); 785 789 AssertPtrReturn(pHostCmd, VERR_INVALID_POINTER); 790 791 /* In case of VERR_CANCELLED. */ 792 uint32_t const cSavedPeeks = mPeekCount; 786 793 787 794 int rc; … … 824 831 * the pending call with the result we just got. */ 825 832 AssertPtr(mSvcHelpers); 826 mSvcHelpers->pfnCallComplete(pConnection->mHandle, rc); 833 int rc2 = mSvcHelpers->pfnCallComplete(pConnection->mHandle, rc); 834 835 /* Rollback in case the guest cancelled the call. */ 836 if (rc2 == VERR_CANCELLED && RT_SUCCESS(rc)) 837 { 838 mPeekCount = cSavedPeeks; 839 rc = VERR_CANCELLED; 840 } 827 841 828 842 LogFlowThisFunc(("[Client %RU32] Command %RU32 ended with %Rrc (mPeekCount=%RU32, pConnection=%p)\n", … … 1392 1406 uClientsWokenUp++; 1393 1407 #endif 1408 /** @todo r=bird: Do we need to queue commands on more than one client? */ 1394 1409 } 1395 1410
Note:
See TracChangeset
for help on using the changeset viewer.