Lines Matching refs:c

42 	struct lthread_cond *c;  in lthread_cond_init()  local
48 c = _lthread_objcache_alloc((THIS_SCHED)->cond_cache); in lthread_cond_init()
50 if (c == NULL) in lthread_cond_init()
53 c->blocked = _lthread_queue_create("blocked"); in lthread_cond_init()
54 if (c->blocked == NULL) { in lthread_cond_init()
55 _lthread_objcache_free((THIS_SCHED)->cond_cache, (void *)c); in lthread_cond_init()
60 strncpy(c->name, "no name", sizeof(c->name)); in lthread_cond_init()
62 strncpy(c->name, name, sizeof(c->name)); in lthread_cond_init()
63 c->name[sizeof(c->name)-1] = 0; in lthread_cond_init()
65 c->root_sched = THIS_SCHED; in lthread_cond_init()
67 (*cond) = c; in lthread_cond_init()
75 int lthread_cond_destroy(struct lthread_cond *c) in lthread_cond_destroy() argument
77 if (c == NULL) { in lthread_cond_destroy()
78 DIAG_EVENT(c, LT_DIAG_COND_DESTROY, c, POSIX_ERRNO(EINVAL)); in lthread_cond_destroy()
83 if (_lthread_queue_destroy(c->blocked) < 0) { in lthread_cond_destroy()
85 DIAG_EVENT(c, LT_DIAG_COND_DESTROY, c, POSIX_ERRNO(EBUSY)); in lthread_cond_destroy()
90 _lthread_objcache_free(c->root_sched->cond_cache, c); in lthread_cond_destroy()
91 DIAG_EVENT(c, LT_DIAG_COND_DESTROY, c, 0); in lthread_cond_destroy()
98 int lthread_cond_wait(struct lthread_cond *c, __rte_unused uint64_t reserved) in lthread_cond_wait() argument
102 if (c == NULL) { in lthread_cond_wait()
103 DIAG_EVENT(c, LT_DIAG_COND_WAIT, c, POSIX_ERRNO(EINVAL)); in lthread_cond_wait()
108 DIAG_EVENT(c, LT_DIAG_COND_WAIT, c, 0); in lthread_cond_wait()
116 lt->pending_wr_queue = c->blocked; in lthread_cond_wait()
127 int lthread_cond_signal(struct lthread_cond *c) in lthread_cond_signal() argument
131 if (c == NULL) { in lthread_cond_signal()
132 DIAG_EVENT(c, LT_DIAG_COND_SIGNAL, c, POSIX_ERRNO(EINVAL)); in lthread_cond_signal()
136 lt = _lthread_queue_remove(c->blocked); in lthread_cond_signal()
140 DIAG_EVENT(c, LT_DIAG_COND_SIGNAL, c, lt); in lthread_cond_signal()
149 int lthread_cond_broadcast(struct lthread_cond *c) in lthread_cond_broadcast() argument
153 if (c == NULL) { in lthread_cond_broadcast()
154 DIAG_EVENT(c, LT_DIAG_COND_BROADCAST, c, POSIX_ERRNO(EINVAL)); in lthread_cond_broadcast()
158 DIAG_EVENT(c, LT_DIAG_COND_BROADCAST, c, 0); in lthread_cond_broadcast()
161 lt = _lthread_queue_remove(c->blocked); in lthread_cond_broadcast()
164 DIAG_EVENT(c, LT_DIAG_COND_BROADCAST, c, lt); in lthread_cond_broadcast()
169 } while (!_lthread_queue_empty(c->blocked)); in lthread_cond_broadcast()
171 DIAG_EVENT(c, LT_DIAG_COND_BROADCAST, c, 0); in lthread_cond_broadcast()
179 lthread_cond_diag_ref(struct lthread_cond *c) in lthread_cond_diag_ref() argument
181 if (c == NULL) in lthread_cond_diag_ref()
183 return c->diag_ref; in lthread_cond_diag_ref()