VirtualBox

Changeset 50861 in vbox


Ignore:
Timestamp:
Mar 25, 2014 12:48:42 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
92953
Message:

SharedClipboard: do not kill guest requests when saving the VM state

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedClipboard/service.cpp

    r44528 r50861  
    330330    VBOXCLIPBOARDCLIENTDATA *pClient = (VBOXCLIPBOARDCLIENTDATA *)pvClient;
    331331
     332    LogRel2(("svcDisconnect: u32ClientID = %d\n", u32ClientID));
     333
    332334    vboxSvcClipboardReportMsg (pClient, VBOX_SHARED_CLIPBOARD_HOST_MSG_QUIT, 0);
     335
     336    vboxSvcClipboardCompleteReadData(pClient, VERR_NO_DATA, 0);
    333337
    334338    vboxClipboardDisconnect (pClient);
     
    761765{
    762766#ifndef UNIT_TEST
    763     /* If there are any pending requests, they must be completed here. Since
    764      * the service is single threaded, there could be only requests
    765      * which the service itself has postponed.
    766      *
    767      * HGCM knows that the state is being saved and that the pfnComplete
    768      * calls are just clean ups. These requests are saved by the VMMDev.
    769      *
    770      * When the state will be restored, these requests will be reissued
     767    /*
     768     * When the state will be restored, pending requests will be reissued
    771769     * by VMMDev. The service therefore must save state as if there were no
    772770     * pending request.
     771     * Pending requests, if any, will be completed in svcDisconnect.
    773772     */
    774773    LogRel2 (("svcSaveState: u32ClientID = %d\n", u32ClientID));
     
    781780    int rc = SSMR3PutStructEx (pSSM, pClient, sizeof(*pClient), 0 /*fFlags*/, &g_aClipboardClientDataFields[0], NULL);
    782781    AssertRCReturn (rc, rc);
    783 
    784     if (pClient->fAsync)
    785     {
    786         g_pHelpers->pfnCallComplete (pClient->async.callHandle, VINF_SUCCESS /* error code is not important here. */);
    787         pClient->fAsync = false;
    788     }
    789 
    790     vboxSvcClipboardCompleteReadData (pClient, VINF_SUCCESS, 0);
    791 
    792782#endif /* !UNIT_TEST */
    793783    return VINF_SUCCESS;
Note: See TracChangeset for help on using the changeset viewer.

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