VirtualBox

Changeset 49006 in vbox for trunk/src/VBox/Main/src-client


Ignore:
Timestamp:
Oct 9, 2013 2:10:51 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89737
Message:

Main/GuestFileImpl.cpp: More locking.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/GuestFileImpl.cpp

    r48818 r49006  
    700700    LogFlowThisFuncEnter();
    701701
    702     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     702    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
    703703
    704704    LogFlowThisFunc(("strFile=%s, strOpenMode=%s, strDisposition=%s, uCreationMode=%RU32, uOffset=%RU64\n",
     
    738738    paParms[i++].setUInt64(mData.mOpenInfo.mInitialOffset);
    739739
    740     alock.release(); /* Drop read lock before sending. */
     740    alock.release(); /* Drop write lock before sending. */
    741741
    742742    vrc = sendCommand(HOST_FILE_OPEN, i, paParms);
     
    759759    LogFlowThisFunc(("uSize=%RU32, uTimeoutMS=%RU32, pvData=%p, cbData=%zu\n",
    760760                     uSize, uTimeoutMS, pvData, cbData));
     761
     762    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     763
    761764    int vrc;
    762765
     
    785788    paParms[i++].setUInt32(uSize /* Size (in bytes) to read */);
    786789
     790    alock.release(); /* Drop write lock before sending. */
     791
    787792    uint32_t cbRead;
    788793    vrc = sendCommand(HOST_FILE_READ, i, paParms);
     
    809814    LogFlowThisFunc(("uOffset=%RU64, uSize=%RU32, uTimeoutMS=%RU32, pvData=%p, cbData=%zu\n",
    810815                     uOffset, uSize, uTimeoutMS, pvData, cbData));
     816
     817    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     818
    811819    int vrc;
    812820
     
    836844    paParms[i++].setUInt32(uSize /* Size (in bytes) to read */);
    837845
     846    alock.release(); /* Drop write lock before sending. */
     847
    838848    uint32_t cbRead;
    839849    vrc = sendCommand(HOST_FILE_READ_AT, i, paParms);
     
    860870    LogFlowThisFunc(("iOffset=%RI64, uTimeoutMS=%RU32\n",
    861871                     iOffset, uTimeoutMS));
     872
     873    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     874
    862875    int vrc;
    863876
     
    887900    /** @todo uint64_t vs. int64_t! */
    888901    paParms[i++].setUInt64((uint64_t)iOffset /* Offset (in bytes) to start reading */);
     902
     903    alock.release(); /* Drop write lock before sending. */
    889904
    890905    vrc = sendCommand(HOST_FILE_SEEK, i, paParms);
     
    11041119    LogFlowThisFunc(("uTimeoutMS=%RU32, pvData=%p, cbData=%zu\n",
    11051120                     uTimeoutMS, pvData, cbData));
     1121
     1122    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     1123
    11061124    int vrc;
    11071125
     
    11311149    paParms[i++].setPointer(pvData, cbData);
    11321150
     1151    alock.release(); /* Drop write lock before sending. */
     1152
    11331153    uint32_t cbWritten;
    11341154    vrc = sendCommand(HOST_FILE_WRITE, i, paParms);
     
    11581178    LogFlowThisFunc(("uOffset=%RU64, uTimeoutMS=%RU32, pvData=%p, cbData=%zu\n",
    11591179                     uOffset, uTimeoutMS, pvData, cbData));
     1180
     1181    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     1182
    11601183    int vrc;
    11611184
     
    11861209    paParms[i++].setPointer(pvData, cbData);
    11871210
     1211    alock.release(); /* Drop write lock before sending. */
     1212
    11881213    uint32_t cbWritten;
    11891214    vrc = sendCommand(HOST_FILE_WRITE_AT, i, paParms);
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