Lines Matching refs:lock

198 #define PHP_UV_INIT_LOCK(lock, lock_type) \  argument
199 PHP_UV_INIT_GENERIC(lock, php_uv_lock_t, uv_lock_ce); \
200 lock->type = lock_type;
261 #define PHP_UV_LOCK_RWLOCK_P(_lock) &_lock->lock.rwlock
262 #define PHP_UV_LOCK_MUTEX_P(_lock) &_lock->lock.mutex
263 #define PHP_UV_LOCK_SEM_P(_lock) &_lock->lock.semaphore
571 php_uv_lock_t *lock = NULL; local
579 PHP_UV_INIT_LOCK(lock, IS_UV_RWLOCK);
580 error = uv_rwlock_init(PHP_UV_LOCK_RWLOCK_P(lock));
585 PHP_UV_INIT_LOCK(lock, IS_UV_MUTEX);
586 error = uv_mutex_init(PHP_UV_LOCK_MUTEX_P(lock));
598 PHP_UV_INIT_LOCK(lock, IS_UV_SEMAPHORE);
599 error = uv_sem_init(PHP_UV_LOCK_SEM_P(lock), (int) val);
608 RETURN_OBJ(&lock->std);
610 OBJ_RELEASE(&lock->std);
617 php_uv_lock_t *lock; local
620 UV_PARAM_OBJ(lock, php_uv_lock_t, uv_lock_ce)
627 if (lock->locked == 0x01) {
632 uv_rwlock_rdlock(PHP_UV_LOCK_RWLOCK_P(lock));
633 if (!lock->locked++) {
634 lock->locked = 0x02;
640 if (lock->locked) {
645 uv_rwlock_wrlock(PHP_UV_LOCK_RWLOCK_P(lock));
646 lock->locked = 0x01;
651 uv_mutex_lock(PHP_UV_LOCK_MUTEX_P(lock));
652 lock->locked = 0x01;
657 uv_sem_post(PHP_UV_LOCK_SEM_P(lock));
668 php_uv_lock_t *lock; local
671 UV_PARAM_OBJ(lock, php_uv_lock_t, uv_lock_ce)
678 if (lock->locked > 0x01) {
679 uv_rwlock_rdunlock(PHP_UV_LOCK_RWLOCK_P(lock));
680 if (--lock->locked == 0x01) {
681 lock->locked = 0x00;
688 if (lock->locked == 0x01) {
689 uv_rwlock_wrunlock(PHP_UV_LOCK_RWLOCK_P(lock));
690 lock->locked = 0x00;
696 if (lock->locked == 0x01) {
697 uv_mutex_unlock(PHP_UV_LOCK_MUTEX_P(lock));
698 lock->locked = 0x00;
704 uv_sem_wait(PHP_UV_LOCK_SEM_P(lock));
715 php_uv_lock_t *lock; local
719 UV_PARAM_OBJ(lock, php_uv_lock_t, uv_lock_ce)
726 if (lock->locked == 0x01) {
731 error = uv_rwlock_tryrdlock(PHP_UV_LOCK_RWLOCK_P(lock));
733 if (!lock->locked++) {
734 lock->locked = 0x02;
744 if (lock->locked) {
749 error = uv_rwlock_trywrlock(PHP_UV_LOCK_RWLOCK_P(lock));
751 lock->locked = 0x01;
760 error = uv_mutex_trylock(PHP_UV_LOCK_MUTEX_P(lock));
763 lock->locked = 0x01;
772 error = uv_sem_trywait(PHP_UV_LOCK_SEM_P(lock));
1206 php_uv_lock_t *lock = (php_uv_lock_t *) obj; local
1208 if (lock->type == IS_UV_RWLOCK) {
1209 if (lock->locked == 0x01) {
1211 uv_rwlock_wrunlock(PHP_UV_LOCK_RWLOCK_P(lock));
1212 } else if (lock->locked) {
1214 while (--lock->locked > 0) {
1215 uv_rwlock_rdunlock(PHP_UV_LOCK_RWLOCK_P(lock));
1218 uv_rwlock_destroy(PHP_UV_LOCK_RWLOCK_P(lock));
1219 } else if (lock->type == IS_UV_MUTEX) {
1220 if (lock->locked == 0x01) {
1222 uv_mutex_unlock(PHP_UV_LOCK_MUTEX_P(lock));
1224 uv_mutex_destroy(PHP_UV_LOCK_MUTEX_P(lock));
1225 } else if (lock->type == IS_UV_SEMAPHORE) {
1226 if (lock->locked == 0x01) {
1228 uv_sem_post(PHP_UV_LOCK_SEM_P(lock));
1230 uv_sem_destroy(PHP_UV_LOCK_SEM_P(lock));
2663 php_uv_lock_t *lock = emalloc(sizeof(php_uv_lock_t)); local
2664 zend_object_std_init(&lock->std, ce);
2665 lock->std.handlers = &uv_lock_handlers;
2667 lock->locked = 0;
2669 return &lock->std;