MCPcopy Create free account
hub / github.com/F-Stack/f-stack / grouptaskqueue_enqueue

Function grouptaskqueue_enqueue

freebsd/kern/subr_gtaskqueue.c:225–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

223}
224
225int
226grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *gtask)
227{
228#ifdef INVARIANTS
229 if (queue == NULL) {
230 gtask_dump(gtask);
231 panic("queue == NULL");
232 }
233#endif
234 TQ_LOCK(queue);
235 if (gtask->ta_flags & TASK_ENQUEUED) {
236 TQ_UNLOCK(queue);
237 return (0);
238 }
239 if (gtask->ta_flags & TASK_NOENQUEUE) {
240 TQ_UNLOCK(queue);
241 return (EAGAIN);
242 }
243 STAILQ_INSERT_TAIL(&queue->tq_queue, gtask, ta_link);
244 gtask->ta_flags |= TASK_ENQUEUED;
245 TQ_UNLOCK(queue);
246 if ((queue->tq_flags & TQ_FLAGS_BLOCKED) == 0)
247 queue->tq_enqueue(queue->tq_context);
248 return (0);
249}
250
251static void
252gtaskqueue_task_nop_fn(void *context)

Callers 1

taskqgroup_bindFunction · 0.85

Calls 2

gtask_dumpFunction · 0.85
panicFunction · 0.70

Tested by

no test coverage detected