| 154 pthread_cond_init(&queue->available, NULL); |
154 pthread_cond_init(&queue->available, NULL); |
| 155 return queue; |
155 return queue; |
| 156 } |
156 } |
| 157 |
157 |
| 158 void ui_queue_free(UiQueue *queue) { |
158 void ui_queue_free(UiQueue *queue) { |
| 159 // TODO |
159 // The queue must be empty, we could free UiQueueElm, |
| |
160 // but not the payload data |
| |
161 pthread_mutex_destroy(&queue->lock); |
| |
162 pthread_mutex_destroy(&queue->avlbl_lock); |
| |
163 pthread_cond_destroy(&queue->available); |
| |
164 free(queue); |
| 160 } |
165 } |
| 161 |
166 |
| 162 void ui_queue_put(UiQueue *queue, void *data) { |
167 void ui_queue_put(UiQueue *queue, void *data) { |
| 163 // create queue element |
168 // create queue element |
| 164 UiQueueElm *elm = malloc(sizeof(UiQueueElm)); |
169 UiQueueElm *elm = malloc(sizeof(UiQueueElm)); |