Lines Matching refs:self
36 rwlock_is_in_list(pthread_descr self, pthread_rwlock_t *rwlock) in rwlock_is_in_list() argument
40 for (info = self->p_readlock_list; info != NULL; info = info->pr_next) in rwlock_is_in_list()
58 rwlock_add_to_list(pthread_descr self, pthread_rwlock_t *rwlock) in rwlock_add_to_list() argument
60 pthread_readlock_info *info = self->p_readlock_free; in rwlock_add_to_list()
63 self->p_readlock_free = info->pr_next; in rwlock_add_to_list()
72 info->pr_next = self->p_readlock_list; in rwlock_add_to_list()
73 self->p_readlock_list = info; in rwlock_add_to_list()
88 rwlock_remove_from_list(pthread_descr self, pthread_rwlock_t *rwlock) in rwlock_remove_from_list() argument
92 for (pinfo = &self->p_readlock_list; *pinfo != NULL; pinfo = &(*pinfo)->pr_next) in rwlock_remove_from_list()
158 pthread_descr self = *pself; in rwlock_have_already() local
162 if (!self) in rwlock_have_already()
163 self = thread_self(); in rwlock_have_already()
165 existing = rwlock_is_in_list(self, rwlock); in rwlock_have_already()
167 if (existing != NULL || self->p_untracked_readlock_count > 0) in rwlock_have_already()
171 existing = rwlock_add_to_list(self, rwlock); in rwlock_have_already()
179 *pself = self; in rwlock_have_already()
229 pthread_descr self = NULL; in pthread_rwlock_rdlock() local
233 have_lock_already = rwlock_have_already(&self, rwlock, in pthread_rwlock_rdlock()
238 if (self == NULL) in pthread_rwlock_rdlock()
239 self = thread_self (); in pthread_rwlock_rdlock()
241 __pthread_lock (&rwlock->__rw_lock, self); in pthread_rwlock_rdlock()
246 enqueue (&rwlock->__rw_read_waiting, self); in pthread_rwlock_rdlock()
248 suspend (self); /* This is not a cancellation point */ in pthread_rwlock_rdlock()
259 self->p_untracked_readlock_count++; in pthread_rwlock_rdlock()
268 pthread_descr self = thread_self(); in pthread_rwlock_tryrdlock() local
273 have_lock_already = rwlock_have_already(&self, rwlock, in pthread_rwlock_tryrdlock()
276 __pthread_lock (&rwlock->__rw_lock, self); in pthread_rwlock_tryrdlock()
299 self->p_untracked_readlock_count++; in pthread_rwlock_tryrdlock()
310 pthread_descr self = thread_self (); in pthread_rwlock_wrlock() local
314 __pthread_lock (&rwlock->__rw_lock, self); in pthread_rwlock_wrlock()
317 rwlock->__rw_writer = self; in pthread_rwlock_wrlock()
323 enqueue (&rwlock->__rw_write_waiting, self); in pthread_rwlock_wrlock()
325 suspend (self); /* This is not a cancellation point */ in pthread_rwlock_wrlock()
405 pthread_descr self = thread_self(); in pthread_rwlock_unlock() local
406 pthread_readlock_info *victim = rwlock_remove_from_list(self, rwlock); in pthread_rwlock_unlock()
412 victim->pr_next = self->p_readlock_free; in pthread_rwlock_unlock()
413 self->p_readlock_free = victim; in pthread_rwlock_unlock()
418 if (self->p_untracked_readlock_count > 0) in pthread_rwlock_unlock()
419 self->p_untracked_readlock_count--; in pthread_rwlock_unlock()