Пример #1
0
PUBLIC MprSpin *mprCreateSpinLock()
{
    MprSpin    *lock;

    if ((lock = mprAllocObjNoZero(MprSpin, manageSpinLock)) == 0) {
        return 0;
    }
    return mprInitSpinLock(lock);
}
Пример #2
0
PUBLIC MprMutex *mprCreateLock()
{
    MprMutex    *lock;

    if ((lock = mprAllocObjNoZero(MprMutex, manageLock)) == 0) {
        return 0;
    }
    return mprInitLock(lock);
}
Пример #3
0
PUBLIC MprCond *mprCreateCond()
{
    MprCond     *cp;

    if ((cp = mprAllocObjNoZero(MprCond, manageCond)) == 0) {
        return 0;
    }
    cp->triggered = 0;
    cp->mutex = mprCreateLock();

#if ME_WIN_LIKE
    cp->cv = CreateEvent(NULL, FALSE, FALSE, NULL);
#elif VXWORKS
    cp->cv = semCCreate(SEM_Q_PRIORITY, SEM_EMPTY);
#else
    pthread_cond_init(&cp->cv, NULL);
#endif
    return cp;
}