VirtualBox

Changeset 22814 in vbox for trunk


Ignore:
Timestamp:
Sep 7, 2009 4:34:29 PM (15 years ago)
Author:
vboxsync
Message:

HGCM: delete a disconnected client handle. Fixes HGCMReset hang/assertion.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/hgcm/HGCM.cpp

    r22732 r22814  
    10381038{
    10391039    ASMAtomicIncU32 (&m_u32RefCnt);
    1040     LogFlowFunc(("m_u32RefCnt = %d\n", m_u32RefCnt));
     1040    LogFlowFunc(("[%s] m_u32RefCnt = %d\n", m_pszSvcName, m_u32RefCnt));
    10411041}
    10421042
     
    13611361        else
    13621362        {
    1363             LogRel(("[%s] hgcmMsgAlloc(%p, SVC_MSG_DISCONNECT) failed %Rrc\n",
    1364                     RT_VALID_PTR(m_pszSvcName)? m_pszSvcName: "", m_thread, rc));
     1363            LogRel(("(%d, %d) [%s] hgcmMsgAlloc(%p, SVC_MSG_DISCONNECT) failed %Rrc\n",
     1364                    u32ClientId, fFromService, RT_VALID_PTR(m_pszSvcName)? m_pszSvcName: "", m_thread, rc));
    13651365        }
    13661366    }
     
    13771377            if (m_cClients > i)
    13781378            {
    1379                 memmove (&m_paClientIds[i], &m_paClientIds[i + 1], m_cClients - i);
     1379                memmove (&m_paClientIds[i], &m_paClientIds[i + 1], sizeof (m_paClientIds[0]) * (m_cClients - i));
    13801380            }
    13811381
     1382            /* Delete the client handle. */
     1383            hgcmObjDeleteHandle (u32ClientId);
     1384
     1385            /* The service must be released. */
     1386            ReleaseService ();
     1387
    13821388            break;
    13831389        }
    13841390    }
    1385 
    1386     /* Delete the client handle. */
    1387     hgcmObjDeleteHandle (u32ClientId);
    1388 
    1389     /* The service must be released. */
    1390     ReleaseService ();
    13911391
    13921392    LogFlowFunc(("rc = %Rrc\n", rc));
Note: See TracChangeset for help on using the changeset viewer.

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