Ignore:
Timestamp:
Apr 8, 2018, 5:49:07 PM (7 years ago)
Author:
bird
Message:

kmk: Fixed a couple of bugs in mkWinChildcareWorkerThreadHandleSubmit that would cause it to lock up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kmkbuiltin/kSubmit.c

    r3200 r3224  
    11961196 * @returns 0 on success, -1 if ReadFile was restarted.
    11971197 * @param   pvUser              The worker instance.
     1198 * @param   fBlock              if we're to block waiting for the result or not.
    11981199 * @param   prcExit             Where to return the exit code.
    11991200 * @param   piSigNo             Where to return the signal number.
    12001201 */
    1201 int kSubmitSubProcGetResult(intptr_t pvUser, int *prcExit, int *piSigNo)
     1202int kSubmitSubProcGetResult(intptr_t pvUser, int fBlock, int *prcExit, int *piSigNo)
    12021203{
    12031204    PWORKERINSTANCE pWorker = (PWORKERINSTANCE)pvUser;
     
    12101211     */
    12111212    DWORD cbRead = 0;
    1212     if (GetOverlappedResult(pWorker->hPipe, &pWorker->OverlappedRead, &cbRead, TRUE))
     1213    if (GetOverlappedResult(pWorker->hPipe, &pWorker->OverlappedRead, &cbRead, fBlock ? TRUE : FALSE))
    12131214    {
    12141215        pWorker->cbResultRead += cbRead;
     
    12281229    {
    12291230        DWORD dwErr = GetLastError();
     1231        if (dwErr == ERROR_IO_INCOMPLETE && !fBlock)
     1232            return -1;
    12301233        kSubmitWinReadFailed(pCtx, pWorker, dwErr, "kSubmitSubProcGetResult/result");
    12311234    }
Note: See TracChangeset for help on using the changeset viewer.