VirtualBox

Changeset 38493 in vbox


Ignore:
Timestamp:
Aug 19, 2011 7:05:37 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
73587
Message:

GuestCtrl: Fixed regression when waiting for guest output.

Location:
trunk/src/VBox/Additions/common/VBoxService
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExec.cpp

    r38395 r38493  
    248248        AssertRC(rc2);
    249249        *phPipeR = NIL_RTPIPE;
     250
     251        /* Sinc some error occured (or because the pipe simply broke) we
     252         * have to set our pipe buffer to disabled so that others don't wait
     253         * for new data to arrive anymore. */
     254        VBoxServicePipeBufSetStatus(pBuf, false);
    250255    }
    251256    return rc;
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExecThread.cpp

    r38445 r38493  
    384384                if (RT_SUCCESS(rc))
    385385                {
    386                     if (fEnabled && !cbRead)
    387                         AssertMsgFailed(("[PID %u]: Waited (%ums) for pipe buffer %u (%u bytes left), but nothing read!\n",
    388                                          uPID, uTimeout, pPipeBuf->uPipeId, pPipeBuf->cbSize - pPipeBuf->cbOffset));
     386#if 0
     387                    if (!cbRead)
     388                        AssertReleaseMsg(fEnabled == VBoxServicePipeBufIsEnabled(pPipeBuf),
     389                                         ("[PID %u]: Waited (%ums) for active pipe buffer %u (%u size, %u bytes left), but nothing read!\n",
     390                                         uPID, uTimeout, pPipeBuf->uPipeId, pPipeBuf->cbSize, pPipeBuf->cbSize - pPipeBuf->cbOffset));
     391#endif
    389392                    if (pcbRead)
    390393                        *pcbRead = cbRead;
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServicePipeBuf.cpp

    r38437 r38493  
    402402    {
    403403        fEnabled = pBuf->fEnabled;
    404         RTCritSectLeave(&pBuf->CritSect);
     404        rc = RTCritSectLeave(&pBuf->CritSect);
     405        AssertRC(rc);
    405406    }
    406407    return fEnabled;
     
    453454            && pBuf->hEventSem)
    454455        {
     456#ifdef DEBUG_andy
     457            VBoxServiceVerbose(4, "Pipe [%u %u] status %s -> %s\n",
     458                               pBuf->uPID, pBuf->uPipeId,
     459                               fEnabledOld ? "EN" : "DIS", pBuf->fEnabled ? "EN" : "DIS");
     460#endif
    455461            /* Let waiter know that something has changed ... */
    456462            RTSemEventSignal(pBuf->hEventSem);
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