VirtualBox

Changeset 23729 in vbox


Ignore:
Timestamp:
Oct 13, 2009 2:31:26 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
53449
Message:

SSM: Fixed assertion in ssmR3StrmClose when called from SSMR3Close.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/SSM.cpp

    r23714 r23729  
    20772077    if (pStrm->fWrite)
    20782078    {
    2079         int rc2 = RTSemEventSignal(pStrm->hEvtHead);                            AssertLogRelRC(rc2);
    2080         int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL);     AssertLogRelRC(rc3);
    2081         pStrm->hIoThread = NIL_RTTHREAD;
     2079        if (pStrm->hIoThread != NIL_RTTHREAD)
     2080        {
     2081            int rc2 = RTSemEventSignal(pStrm->hEvtHead);
     2082            AssertLogRelRC(rc2);
     2083            int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL);
     2084            AssertLogRelRC(rc3);
     2085            pStrm->hIoThread = NIL_RTTHREAD;
     2086        }
    20822087
    20832088        rc = pStrm->pOps->pfnClose(pStrm->pvUser);
     
    20912096            ssmR3StrmSetError(pStrm, rc);
    20922097
    2093         int rc2 = RTSemEventSignal(pStrm->hEvtFree);                            AssertLogRelRC(rc2);
    2094         int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL);     AssertLogRelRC(rc3);
    2095         pStrm->hIoThread = NIL_RTTHREAD;
     2098        if (pStrm->hIoThread != NIL_RTTHREAD)
     2099        {
     2100            int rc2 = RTSemEventSignal(pStrm->hEvtHead);
     2101            AssertLogRelRC(rc2);
     2102            int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL);
     2103            AssertLogRelRC(rc3);
     2104            pStrm->hIoThread = NIL_RTTHREAD;
     2105        }
    20962106    }
    20972107
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