Lines Matching refs:q
43 msg_queue_t *q; in queue_calloc() local
45 q = (msg_queue_t *)calloc(1, sizeof (msg_queue_t)); in queue_calloc()
47 if (q) { in queue_calloc()
48 if (sema_init(&q->q_sema, 0, USYNC_THREAD, NULL) || in queue_calloc()
49 pthread_mutex_init(&q->q_mutex, NULL)) { in queue_calloc()
50 free(q); in queue_calloc()
51 q = NULL; in queue_calloc()
55 return (q); in queue_calloc()
60 msg_queue_t *q, in queue_msg_set() argument
76 (void) pthread_mutex_lock(&q->q_mutex); in queue_msg_set()
78 if (q->q_head == NULL) { in queue_msg_set()
79 ASSERT(!q->q_tail); in queue_msg_set()
80 q->q_head = msg; in queue_msg_set()
81 q->q_tail = msg; in queue_msg_set()
83 ASSERT(q->q_tail); in queue_msg_set()
84 q->q_tail->next = msg; in queue_msg_set()
85 msg->prev = q->q_tail; in queue_msg_set()
86 q->q_tail = msg; in queue_msg_set()
89 (void) pthread_mutex_unlock(&q->q_mutex); in queue_msg_set()
91 (void) sema_post(&q->q_sema); in queue_msg_set()
98 msg_queue_t *q in queue_msg_get() argument
103 while (sema_wait(&q->q_sema)) { in queue_msg_get()
107 (void) pthread_mutex_lock(&q->q_mutex); in queue_msg_get()
109 msg = q->q_head; in queue_msg_get()
111 q->q_head = msg->next; in queue_msg_get()
112 if (q->q_head == NULL) { in queue_msg_get()
113 q->q_tail = NULL; in queue_msg_get()
116 (void) pthread_mutex_unlock(&q->q_mutex); in queue_msg_get()