Changeset 3636 for branches


Ignore:
Timestamp:
May 17, 2008, 5:38:42 PM (17 years ago)
Author:
bird
Message:

Fixed serious performance bug in spawn. Fixes #195.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/libc-0.6/src/emx/src/lib/sys/__spawnve.c

    r3373 r3636  
    523523                ULONG ulStart = fibGetMsCount();
    524524                rc = 0;
    525                 while (     (fDoneInherit = pEmbryo->enmState > __LIBC_PROCSTATE_ALIVE
     525                while (     (fDoneInherit = pEmbryo->enmState >= __LIBC_PROCSTATE_ALIVE
    526526                                         || (pEmbryo->pInherit == NULL && pEmbryo->pInheritLocked == NULL)
    527527                            ) == 0
    528528                       &&   fibGetMsCount() - ulStart <= 8)
    529529                {
    530                     DosSleep(!(rc++ % 7));
     530                    DosSleep(rc++ > 4);
    531531                    __libc_spmGetLoadAvg(&LoadAvg, &uLoadAvgTS); /* SMP HACK */
    532532                }
     
    537537                    rc = 0;
    538538                    __libc_spmGetLoadAvg(&LoadAvg, &uLoadAvgTS); /* SMP HACK */
    539                     while (     (fDoneInherit = pEmbryo->enmState > __LIBC_PROCSTATE_ALIVE
     539                    while (     (fDoneInherit = pEmbryo->enmState >= __LIBC_PROCSTATE_ALIVE
    540540                                             || (pEmbryo->pInherit == NULL && pEmbryo->pInheritLocked == NULL)
    541541                                ) == 0
    542542                           &&   fibGetMsCount() - ulStart <= 100)
    543543                    {
    544                         DosSleep(!(rc++ % 7));
     544                        DosSleep(rc++ > 4);
    545545                        __libc_spmGetLoadAvg(&LoadAvg, &uLoadAvgTS); /* SMP HACK */
    546546                    }
Note: See TracChangeset for help on using the changeset viewer.