MCPcopy Create free account
hub / github.com/apache/trafficserver / dequeue

Function dequeue

src/tscore/llqueue.cc:182–211  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182void *
183dequeue(LLQ *Q)
184{
185 LLQrec *rec;
186 void *d;
187 ink_sem_wait(&(Q->sema));
188 ink_mutex_acquire(&(Q->mux));
189
190 if (Q->head == nullptr) {
191 ink_mutex_release(&(Q->mux));
192
193 return nullptr;
194 }
195
196 rec = Q->head;
197
198 Q->head = Q->head->next;
199 if (Q->head == nullptr) {
200 Q->tail = nullptr;
201 }
202
203 d = rec->data;
204 // freerec(Q, rec);
205 ats_free(rec);
206
207 Q->len--;
208 ink_mutex_release(&(Q->mux));
209
210 return d;
211}
212
213#ifdef LLQUEUE_MAIN
214

Callers 1

testfunFunction · 0.85

Calls 4

ink_sem_waitFunction · 0.85
ink_mutex_acquireFunction · 0.85
ink_mutex_releaseFunction · 0.85
ats_freeFunction · 0.85

Tested by

no test coverage detected