PUBLIC MprSpin *mprCreateSpinLock() { MprSpin *lock; if ((lock = mprAllocObjNoZero(MprSpin, manageSpinLock)) == 0) { return 0; } return mprInitSpinLock(lock); }
PUBLIC MprMutex *mprCreateLock() { MprMutex *lock; if ((lock = mprAllocObjNoZero(MprMutex, manageLock)) == 0) { return 0; } return mprInitLock(lock); }
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; }