VirtualBox

vbox的更動 45678 路徑 trunk/src/VBox/Runtime/r3/posix


忽略:
時間撮記:
2013-4-23 上午11:28:41 (12 年 以前)
作者:
vboxsync
訊息:

Runtime/aio: Add flags parameter to RTFileAioCtxCreate

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Runtime/r3/posix/fileaio-posix.cpp

    r39143 r45678  
    123123    /** Flag whether the thread is currently waiting in the syscall. */
    124124    volatile bool         fWaiting;
     125    /** Flags given during creation. */
     126    uint32_t              fFlags;
    125127    /** Magic value (RTFILEAIOCTX_MAGIC). */
    126128    uint32_t              u32Magic;
     
    523525
    524526
    525 RTDECL(int) RTFileAioCtxCreate(PRTFILEAIOCTX phAioCtx, uint32_t cAioReqsMax)
     527RTDECL(int) RTFileAioCtxCreate(PRTFILEAIOCTX phAioCtx, uint32_t cAioReqsMax,
     528                               uint32_t fFlags)
    526529{
    527530    PRTFILEAIOCTXINTERNAL pCtxInt;
     
    529532
    530533    AssertPtrReturn(phAioCtx, VERR_INVALID_POINTER);
     534    AssertReturn(!(fFlags & ~RTFILEAIOCTX_FLAGS_VALID_MASK), VERR_INVALID_PARAMETER);
    531535
    532536    if (cAioReqsMax == RTFILEAIO_UNLIMITED_REQS)
     
    551555    pCtxInt->cMaxRequests = cAioReqsMax;
    552556    pCtxInt->cReqsWaitMax = cReqsWaitMax;
     557    pCtxInt->fFlags       = fFlags;
    553558    *phAioCtx = (RTFILEAIOCTX)pCtxInt;
    554559
     
    872877    int32_t cRequestsWaiting = ASMAtomicReadS32(&pCtxInt->cRequests);
    873878
    874     if (RT_UNLIKELY(cRequestsWaiting <= 0))
     879    if (   RT_UNLIKELY(cRequestsWaiting <= 0)
     880        && !(pCtxInt->fFlags & RTFILEAIOCTX_FLAGS_WAIT_WITHOUT_PENDING_REQUESTS))
    875881        return VERR_FILE_AIO_NO_REQUEST;
    876882
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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